How to save a visualized image and the ROI ?
14 ビュー (過去 30 日間)
古いコメントを表示
Hello, I process a raw data and get a visualized image. After drawing 2 square ROIs, I wish to save the image and the ROIs as a png file with imwrite function. please see an example below:
However, I get a black-white image with the imwrite function instead.
Please see my code below:
slice = 9;
figure; imshow(Maps.kidney.t1(:,:,slice),[0 3000]); colormap('jet');
s = drawrectangle('Position',[49.44415243 81.4586071 3 3]), wait(s);
mask = createMask(s);
kidney_left_mask(:,:,slice) = mask;
map = Maps.kidney.t1(:,:,slice);
val_mean = mean(map(mask==1))
val_std = std(map(mask==1));
val_sum = sum(map(mask==1))
number_of_Voxel = val_sum / val_mean
kidney_left_t1_Mean_ROI1(slice) = val_mean
kidney_left_t1_std_ROI1(slice) = val_std;
kidney_left_t1_sum_ROI1(slice) = val_sum
kidney_left_t1_No_of_Voxel_ROI1(slice) = number_of_Voxel
%ROI 2
s2 = drawrectangle('Position',[46.07095926 85.70039422 3 3]), wait(s2);
mask = createMask(s2);
kidney_left_mask(:,:,slice) = mask;
map = Maps.kidney.t1(:,:,slice);
val_mean = mean(map(mask==1))
val_std = std(map(mask==1));
val_sum = sum(map(mask==1))
kidney_left_t1_Mean_ROI2(slice) = val_mean
kidney_left_t1_std_ROI2(slice) = val_std;
kidney_left_t1_sum_ROI2(slice) = val_sum
% save the visualized image?
filename = 'C:\Users\Public\MRI\SZ_SD_1st\M1\Kidney_ROIs_9.png'
imwrite(map,filename)
My questions are:
1) How to save both image and the ROIs?
2) I need to change the slice number (1st row) each time to visualize an image at different height.
How to modify my code (2nd to last raw) so that each time I change the slice number, the saved filename will also be changed correspondingly? e.g., when I change to slice = 8, the filename would be Kidney_ROIs_8.png. I guess by scalar?
Thank you!
0 件のコメント
採用された回答
Rik
2022 年 12 月 14 日
If you want to save what you see in a figure, you should first capture the contents with getframe.
If you want to change the file name based on a variable, you should use sprintf to generate the file name. I would suggest putting the hard-coded path at the top of the code and using fullfile to put the path and file name together.
14 件のコメント
Image Analyst
2022 年 12 月 16 日
To learn MATLAB in the beginning, invest 2 hours of your time here:
To further master it, see this link:
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Convert Image Type についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!