Why won't imwrite save to a 16 bit tiff when called from a function?
18 views (last 30 days)
Show older comments
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 Comments
Geoff Hayes
on 2 Jun 2016
Harshad - please share your code that writes the image to file (as called from your function).
Answers (1)
Pavel Dey
on 10 Jun 2016
Edited: Pavel Dey
on 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 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!