Why does imshow display different image when I try to show a CT image?
5 次查看(过去 30 天)
显示 更早的评论
Hi,
I want to show an original abdominal CT (Computed Tomography) image (which is uint16 bit ) with these codes;
im = imread('Slice_87.png');
imshow(im);
The original image and the figure shown by the above command are different.
For instance, the figure shown by the above command has a grayscale background. However, the background in the original image seems as black when I open it with ImageJ or paint.
Why are they different?.
How can I show the CT image as it is seen by ImageJ or paint?
0 个评论
回答(1 个)
KALYAN ACHARJYA
2023-5-13
Can you try this way-
[img,map] = imread('Slice_87.png');
imshow(img,map);
9 个评论
Simon Chan
2023-5-14
One possible way is use function getframe as follows:
I=imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1382669/wholeCTgray_87.png');
mask = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1382664/MASK_87.png');
outpict3 = im2double(mask).*im2double(I);
outpict3 = im2uint16(outpict3); % Your original image is uint16
[minValue,maxValue] = bounds(outpict3(outpict3~=0));
imshow(outpict3,[minValue,maxValue]);
F = getframe(gca);
imwrite(F.cdata,'ScreenCapture.png');
DGM
2023-5-14
编辑:DGM
2023-5-14
Use mat2gray() to do the normalization instead of relying on figure capture and all the problems that causes.
I=imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1382669/wholeCTgray_87.png');
mask = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1382664/MASK_87.png');
outpict3 = im2double(mask).*im2double(I); % multiply
[minValue,maxValue] = bounds(outpict3(outpict3~=0)); % get data range
outpict3 = mat2gray(outpict3,[minValue,maxValue]); % normalize to extrema
outpict3 = im2uint16(outpict3); % Your original image is uint16
imshow(outpict3); % now it's scaled as expected
imwrite(outpict3,'ScreenCapture.png');
另请参阅
类别
在 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!