读取一个三维图片,保存图片时用到函数 imwrite(X,map,filename,fmt) ,函数中map是什么意思,怎么用? 好像不加入这个map参数,只能保存灰度图像,我想保存的是三维图像。举个具体例子最好。3Q~
[X,map]=imread('abc.tif'); 中,我对X用某函数计算完后,再X=uint8(X);imwrite(X,'E:\XX.bmp');保存的图片比与用imshow(X)的图片颜色暗很多,是因为我没有加入map调色的原因吗? 不过我随后又加入了 colormap(map);imwrite(X,colormap,'E:\XX.bmp'); 效果依然那样。这我就不懂了。求指点~谢谢了~
追答试一下X=uint8(X-1);
如果X是双精度类型的,需要这样再网文件里面写。
比如这个代码, imshow出来的图和imwrite出的图亮度就不一样。我试了你的方法了,还是老样子。麻烦了。
[I,map]=imread('E:\A.bmp');
I=rgb2gray(I);
noisy=imnoise(I,'salt & pepper',0.05);
myfilt1=[0 1 0;1 1 1;0 1 0];
myfilt1=myfilt1/9; filtered1=filter2(myfilt1,noisy);
filtered1=uint8(filtered1);
imshow(filtered1,map),title('4邻域平均滤波模板');
imwrite(filtered1, 'E:\A_4邻域平均滤波.bmp');