How can I rotate my images

2 Ansichten (letzte 30 Tage)
William
William am 16 Mai 2023
Kommentiert: DGM am 16 Mai 2023
So I have these imgaes being generated from my drive. But they are not jpg images. So I am having a hard time getting them to rotate. Can anyone give me advice on what to do? Thanks!
clear;clc;close all;
myfolds = {'P:\IRB_STUDY00146119_Xe_Imaging\20230320_Xe-059',...
'P:\IRB_STUDY00146119_Xe_Imaging\20221018_Xe-045',...
'P:\IRB_STUDY00146119_Xe_Imaging\20221025_Xe-046',...
'P:\IRB_STUDY00146119_Xe_Imaging\20221028_Xe-047',...
'P:\IRB_STUDY00146119_Xe_Imaging\20221115_Xe-049',...
'P:\IRB_STUDY00146119_Xe_Imaging\20230109_Xe-054',...
'P:\IRB_STUDY00146119_Xe_Imaging\20230111_Xe-052',...
'P:\IRB_STUDY00146119_Xe_Imaging\20230112_Xe-051',...
'P:\IRB_STUDY00146119_Xe_Imaging\20230118_Xe-048',...
'P:\IRB_STUDY00146119_Xe_Imaging\20230309_Xe-058',...
'P:\IRB_STUDY00146616_COVID_Xe_MRI\20221109_CXe-041',...
'P:\IRB_STUDY00146616_COVID_Xe_MRI\20221201_CXe-038_02',...
'P:\IRB_STUDY00146616_COVID_Xe_MRI\20221031_CXe-020_02',...
};
for ii = 1:length(myfolds)
try
load(fullfile(myfolds{ii},'Dynamic_CSI_Workspace.mat'));
load(fullfile(myfolds{ii},'All_in_One_Analysis','Oscillation_Amps_Multiple_Ways.mat'));
figure('Name','Select Left then Right lung');
imagesc(Gas(:,:,1));
l = roipoly();
r = roipoly();
Mask = l+r;
close;
RBC_Osc_Proj(end-7:end,:) = [];
RBC_Osc_Proj(:,end-7:end) = [];
RBC_Osc_Proj(1:8,:) = [];
RBC_Osc_Proj(:,1:8) = [];
RBC2Mem_Osc_Proj(end-7:end,:) = [];
RBC2Mem_Osc_Proj(:,end-7:end) = [];
RBC2Mem_Osc_Proj(1:8,:) = [];
RBC2Mem_Osc_Proj(:,1:8) = [];
tROP = RBC_Osc_Proj;
tROP(isnan(tROP)) = 0;
tRMOP = RBC2Mem_Osc_Proj;
tRMOP(isnan(tRMOP)) = 0;
tmpRBC_Osc_Proj = imresize(tROP,[8,8]);
tmpRBC2Mem_Osc_Proj = imresize(tRMOP,[8,8]);
figure('Name',['Image for ii = ' num2str(ii)]);
subplot(2,3,1)
imagesc(RBCAmp.*Mask);axis square; axis off;clim([0 8]);
matrixa= [imdivide(RBCAmp.*Mask,1)];
matrixa(isnan(matrixa))=0;
A1=matrixa(1:4,1:4);
A2=mean(A1,"all",'omitnan');
B1=matrixa(5:8,1:4);
B2=mean(B1,"all");
C1=matrixa(1:4,5:8);
C2=mean(C1,"all");
D1=matrixa(5:8,5:8);
D2=mean(D1,"all");
RBC1 = [A2,B2;C2,D2];
disp('RBCAmp.*Mask Avg in Quads')
disp(RBC1);
subplot(2,3,2)
imagesc(RBC_Osc_Proj);axis square;axis off;clim([0 20]);
subplot(2,3,3)
imagesc(tmpRBC_Osc_Proj);axis square;axis off;clim([0 20]);
matrixa= [imdivide(tmpRBC_Osc_Proj,1)];
matrixa(isnan(matrixa))=0;
A3=matrixa(1:4,1:4);
A4=mean(A3,"all");
B3=matrixa(5:8,1:4);
B4=mean(B3,"all");
C3=matrixa(1:4,5:8);
C4=mean(C3,"all");
D3=matrixa(5:8,5:8);
D4=mean(D3,"all");
OSC1 = [A4,B4;C4,D4];
disp('tmpRBC_Osc_Proj Avg in Quads')
disp(OSC1);
subplot(2,3,4)
imagesc(RBC2MemAmp.*Mask);axis square;axis off;clim([0 0.1]);
matrixa= [imdivide(RBC2MemAmp.*Mask,1)];
matrixa(isnan(matrixa))=0;
A5=matrixa(1:4,1:4);
A6=mean(A5,"all");
B5=matrixa(5:8,1:4);
B6=mean(B5,"all");
C5=matrixa(1:4,5:8);
C6=mean(C5,"all");
D5=matrixa(5:8,5:8);
D6=mean(D5,"all");
RBC2 = [A6,B6;C6,D6];
disp('RBC2MemAmp.*Mask Avg in Quads')
disp(RBC2);
subplot(2,3,5)
imagesc(RBC2Mem_Osc_Proj);axis square;axis off;clim([0 0.1])
subplot(2,3,6)
imagesc(tmpRBC2Mem_Osc_Proj);axis square;axis off;clim([0 0.1])
matrixa= [imdivide(tmpRBC2Mem_Osc_Proj,1)];
matrixa(isnan(matrixa))=0;
A7=matrixa(1:4,1:4);
A8=mean(A7,"all");
B7=matrixa(5:8,1:4);
B8=mean(B7,"all");
C7=matrixa(1:4,5:8);
C8=mean(C7,"all");
D7=matrixa(5:8,5:8);
D8=mean(D7,"all");
OSC2 = [A8,B8;C8,D8];
disp('tmpRBC2Mem_Osc_Proj Avg in Quads')
disp(OSC2);
y1=dist(RBC1,OSC1);
y2=dist(RBC2,OSC2);
disp('diff in top')
disp(y1);
disp('diff in bottom')
disp(y2);
catch
disp('Need to analyze both ims!')
end
end

Akzeptierte Antwort

DGM
DGM am 16 Mai 2023
The fact that they aren't JPG isn't relevant. If you can read the image as an array of typical numeric class ('double','single','uint8','uint16','int16'), then you should be able to operate on it. I don't see anything that is preventing you from using imrotate() or rot90() to do whatever you need to do, but I also don't see where you're trying to do any rotation.
  6 Kommentare
Walter Roberson
Walter Roberson am 16 Mai 2023
How would having a file name help you to know how much to rotate the image by?
And is it possible that knowing the name of a variable inside a .mat file would allow you to deduce the required information?
DGM
DGM am 16 Mai 2023
I'm not sure where this is going, but:
So far, I'm assuming that the rotations are all "in-plane" (i.e. as you would rotate a photo in photoshop). If you have a volumetric image and the axis of rotation is not parallel to the page axis, then you might use imrotate3(). If you're trying to reconstruct an image from projections, that's a different story.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by