Why won't imwrite save to a 16 bit tiff when called from a function?
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello world, If I run imwrite from the command line, it will write an uint16 bit array into a 16 bit tif file - no problem. But the same command executed from within a function will save an 8 bit image. Has anyone seen this before, and does anybody know how to fix it?
Thanks.
2 Kommentare
Geoff Hayes
am 2 Jun. 2016
Harshad - please share your code that writes the image to file (as called from your function).
Antworten (1)
Pavel Dey
am 10 Jun. 2016
Bearbeitet: Pavel Dey
am 10 Jun. 2016
That should not happen. Running a code from Command Window or from a script are same. Please make sure you are not missing anything else. I ran a sample code at my end, and it worked well.
I am posting the code. I converted the uint8 image into an uint16 image first. Then I performed the similar operation on that. Run this in your system and see if it is still showing the issue.
function imwriteIssueML
close all
I = imread('ngc6543a.jpg');
I=im2uint16(I);
figure,imshow(I)
PSF = fspecial('gaussian',7,10);
V = .0001;
BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);
figure,imshow(BlurredNoisy)
WT = zeros(size(I));
WT(5:end-4,5:end-4) = 1;
J1 = deconvlucy(BlurredNoisy,PSF);
figure,imshow(J1)
for k=1:3
imwrite(J1(:,:,k),'MyOutput.tif','tif','WriteMode','append');
end
output=imread('MyOutput.tif');
0 Kommentare
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!