Minor modification.
This commit is contained in:
parent
a472caf645
commit
b2a5b172d8
@ -2,22 +2,23 @@
|
|||||||
|
|
||||||
groupList = ["/images/MOT_3D_Camera/in_situ_absorption", "/images/ODT_1_Axis_Camera/in_situ_absorption", "/images/ODT_2_Axis_Camera/in_situ_absorption", "/images/Horizontal_Axis_Camera/in_situ_absorption", "/images/Vertical_Axis_Camera/in_situ_absorption"];
|
groupList = ["/images/MOT_3D_Camera/in_situ_absorption", "/images/ODT_1_Axis_Camera/in_situ_absorption", "/images/ODT_2_Axis_Camera/in_situ_absorption", "/images/Horizontal_Axis_Camera/in_situ_absorption", "/images/Vertical_Axis_Camera/in_situ_absorption"];
|
||||||
|
|
||||||
folderPath = "C:/Users/Karthik/Documents/GitRepositories/Calculations/24/";
|
folderPath = "C:/Users/Karthik/Documents/GitRepositories/Calculations/Data-Analyzer/20/";
|
||||||
|
|
||||||
run = '0086';
|
run = '0140';
|
||||||
|
|
||||||
folderPath = strcat(folderPath, run);
|
folderPath = strcat(folderPath, run);
|
||||||
|
|
||||||
cam = 5;
|
cam = 4;
|
||||||
|
|
||||||
angle = 90;
|
angle = 0;
|
||||||
center = [2100, 1150];
|
center = [95, 1042];
|
||||||
span = [500, 500];
|
span = [50, 50];
|
||||||
fraction = [0.1, 0.1];
|
fraction = [0.1, 0.1];
|
||||||
|
|
||||||
pixel_size = 4.6e-6;
|
pixel_size = 5.86e-6;
|
||||||
|
remove_fringes = false;
|
||||||
|
|
||||||
%% Compute OD image, rotate and extract ROI for analysis
|
% Compute OD image, rotate and extract ROI for analysis
|
||||||
% Get a list of all files in the folder with the desired file name pattern.
|
% Get a list of all files in the folder with the desired file name pattern.
|
||||||
filePattern = fullfile(folderPath, '*.h5');
|
filePattern = fullfile(folderPath, '*.h5');
|
||||||
files = dir(filePattern);
|
files = dir(filePattern);
|
||||||
@ -35,36 +36,48 @@ for k = 1 : length(files)
|
|||||||
bkg_img = im2double(imrotate(h5read(fullFileName, append(groupList(cam), "/background")), angle));
|
bkg_img = im2double(imrotate(h5read(fullFileName, append(groupList(cam), "/background")), angle));
|
||||||
dark_img = im2double(imrotate(h5read(fullFileName, append(groupList(cam), "/dark")), angle));
|
dark_img = im2double(imrotate(h5read(fullFileName, append(groupList(cam), "/dark")), angle));
|
||||||
|
|
||||||
refimages(:,:,k) = subtract_offset(crop_image(bkg_img, center, span), fraction);
|
refimages(:,:,k) = subtract_offset(crop_image(bkg_img, center, span), fraction)';
|
||||||
absimages(:,:,k) = subtract_offset(crop_image(calculate_OD(atm_img, bkg_img, dark_img), center, span), fraction);
|
absimages(:,:,k) = subtract_offset(crop_image(calculate_OD(atm_img, bkg_img, dark_img), center, span), fraction)';
|
||||||
|
|
||||||
end
|
end
|
||||||
%% Fringe removal
|
|
||||||
|
|
||||||
optrefimages = removefringesInImage(absimages, refimages);
|
% Fringe removal
|
||||||
absimages_fringe_removed = absimages(:, :, :) - optrefimages(:, :, :);
|
if remove_fringes
|
||||||
|
optrefimages = removefringesInImage(absimages, refimages);
|
||||||
|
absimages_fringe_removed = absimages(:, :, :) - optrefimages(:, :, :);
|
||||||
|
|
||||||
nimgs = size(absimages_fringe_removed,3);
|
nimgs = size(absimages_fringe_removed,3);
|
||||||
od_imgs = cell(1, nimgs);
|
od_imgs = cell(1, nimgs);
|
||||||
for i = 1:nimgs
|
for i = 1:nimgs
|
||||||
od_imgs{i} = absimages_fringe_removed(:, :, i);
|
od_imgs{i} = absimages_fringe_removed(:, :, i);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
nimgs = size(absimages,3);
|
||||||
|
od_imgs = cell(1, nimgs);
|
||||||
|
for i = 1:nimgs
|
||||||
|
od_imgs{i} = absimages(:, :, i);
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
figure(1)
|
figure(1)
|
||||||
clf
|
clf
|
||||||
r = 120;
|
set(gcf,'Position',[50 50 950 750])
|
||||||
x = 250;
|
|
||||||
y = 250;
|
% Calculate the x and y limits for the cropped image
|
||||||
|
y_min = center(1) - span(2) / 2;
|
||||||
|
y_max = center(1) + span(2) / 2;
|
||||||
|
x_min = center(2) - span(1) / 2;
|
||||||
|
x_max = center(2) + span(1) / 2;
|
||||||
|
|
||||||
|
% Generate x and y arrays representing the original coordinates for each pixel
|
||||||
|
x_range = linspace(x_min, x_max, span(1));
|
||||||
|
y_range = linspace(y_min, y_max, span(2));
|
||||||
|
|
||||||
|
% Display the cropped image
|
||||||
for k = 1 : length(od_imgs)
|
for k = 1 : length(od_imgs)
|
||||||
imagesc(xvals, yvals, od_imgs{k})
|
imagesc(x_range, y_range, od_imgs{k})
|
||||||
hold on
|
|
||||||
th = 0:pi/50:2*pi;
|
|
||||||
xunit = r * cos(th) + x;
|
|
||||||
yunit = r * sin(th) + y;
|
|
||||||
h = plot(xunit, yunit, Color='yellow');
|
|
||||||
xlabel('µm', 'FontSize', 16)
|
|
||||||
ylabel('µm', 'FontSize', 16)
|
|
||||||
axis equal tight;
|
axis equal tight;
|
||||||
hcb = colorbar;
|
hcb = colorbar;
|
||||||
hL = ylabel(hcb, 'Optical Density', 'FontSize', 16);
|
hL = ylabel(hcb, 'Optical Density', 'FontSize', 16);
|
||||||
@ -72,11 +85,42 @@ for k = 1 : length(od_imgs)
|
|||||||
colormap jet;
|
colormap jet;
|
||||||
set(gca,'CLim',[0 1.0]);
|
set(gca,'CLim',[0 1.0]);
|
||||||
set(gca,'YDir','normal')
|
set(gca,'YDir','normal')
|
||||||
title('DMD projection: Circle of radius 200 pixels', 'FontSize', 16);
|
set(gca, 'YTick', linspace(y_min, y_max, 5)); % Define y ticks
|
||||||
|
set(gca, 'YTickLabel', flip(linspace(y_min, y_max, 5))); % Flip only the labels
|
||||||
|
xlabel('X', 'Interpreter', 'tex','FontSize',16);
|
||||||
|
ylabel('Y', 'Interpreter', 'tex','FontSize',16);
|
||||||
|
|
||||||
drawnow;
|
drawnow
|
||||||
|
pause(0.5)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
%% Overlay images
|
||||||
|
|
||||||
|
% image_below = ;
|
||||||
|
% image_top = ;
|
||||||
|
|
||||||
|
% Display the first image (opaque)
|
||||||
|
figure (2);
|
||||||
|
clf
|
||||||
|
set(gcf,'Position',[50 50 950 750])
|
||||||
|
|
||||||
|
imagesc(x_range, y_range, image_below);
|
||||||
|
hold on; % Allow overlaying of the second image
|
||||||
|
h = imagesc(x_range, y_range, image_top); % Display the second image (translucent)
|
||||||
|
set(h, 'AlphaData', 0.6); % Adjust transparency: 0 is fully transparent, 1 is fully opaque
|
||||||
|
axis equal tight;
|
||||||
|
hcb = colorbar;
|
||||||
|
hL = ylabel(hcb, 'Optical Density', 'FontSize', 16);
|
||||||
|
set(hL,'Rotation',-90);
|
||||||
|
colormap jet;
|
||||||
|
set(gca,'CLim',[0 1.0]);
|
||||||
|
set(gca,'YDir','normal')
|
||||||
|
set(gca, 'YTick', linspace(y_min, y_max, 5)); % Define y ticks
|
||||||
|
set(gca, 'YTickLabel', flip(linspace(y_min, y_max, 5))); % Flip only the labels
|
||||||
|
xlabel('X', 'Interpreter', 'tex','FontSize',16);
|
||||||
|
ylabel('Y', 'Interpreter', 'tex','FontSize',16);
|
||||||
|
hold off;
|
||||||
|
|
||||||
%% Helper Functions
|
%% Helper Functions
|
||||||
|
|
||||||
function ret = get_offset_from_corner(img, x_fraction, y_fraction)
|
function ret = get_offset_from_corner(img, x_fraction, y_fraction)
|
||||||
|
Loading…
Reference in New Issue
Block a user