matlab imwrite函数保存图片问题。imwrite(X,map,filename,fmt) 中着重说一下map是啥意思,怎么用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab imwrite函数保存图片问题。imwrite(X,map,filename,fmt) 中着重说一下map是啥意思,怎么用?相关的知识,希望对你有一定的参考价值。

读取一个三维图片,保存图片时用到函数 imwrite(X,map,filename,fmt) ,函数中map是什么意思,怎么用? 好像不加入这个map参数,只能保存灰度图像,我想保存的是三维图像。举个具体例子最好。3Q~

map 是一个列数为3的矩阵,表示颜色表,每行代表一个颜色,每行3个元素代表rgb的亮度
map可以在读取的时候随图像一起读进来
[X,map]=imread('abc.tif');
我不知道你现在有什么要存,不过有问题可以问我。、追问

[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');

参考技术A 参考这个例子吧,都说的听明白的http://baike.baidu.com/view/5781713.htm
% 本例子展示如何将一张真彩色jpg格式图片转换为灰度图像、索引图像、二值图像   imgrgb = imread('flower.jpg');   imwrite(imgrgb, 'flower.bmp', 'bmp'); % jpg格式转换为bmp格式   imggray = rgb2gray(imgrgb);   imwrite(imggray, 'flower_grayscale.bmp', 'bmp'); % 存储为灰度图像   [imgind, map] = rgb2ind(imgrgb, 256); % 转换为256色的索引图像   % 如果转换为65536色图像, imwrite函数无法写入到文件, 这是因为: 65536色的   % 索引图像数据类型是uint16(16-bit), 而imwrite函数的bmp文件格式仅仅支持   % 1-bit, 8-bit, 和 24-bit。png格式支持uint16。   imwrite(imgind, map, 'flower_index.bmp', 'bmp');

matlab如何保存图片到我上一步通过字符串创建的文件夹里?

比如我输入一张图像,提取了图像的文件名保存在字符串S里,用此字符串作名字创建了文件夹mkdir(s)
那我如何将处理好的图片保存到这个文件夹呢?不能直接引用图像的文件名,因为文件名不固定

参考技术A 若是图像数据I,用下面命令保存到path中
imwrite(I,path);
如果是程序显示的figure图片,直接在菜单里保存就行,格式有很多,fig或jpg、bmp等。
参考技术B print(gcf,'-djpeg',strcat('C:\',num2str(i),'.jpeg'));本回答被提问者采纳 参考技术C 若是图像数据I,用下面命令保存到path中
imwrite(I,path);
如果是程序显示的figure图片,直接在菜单里保存就行,格式有很多,fig或jpg、bmp等。

以上是关于matlab imwrite函数保存图片问题。imwrite(X,map,filename,fmt) 中着重说一下map是啥意思,怎么用?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 关于保存图像的问题

Matlab imwrite函数 保存图像会压缩

用matlab处理bmp的图像,处理完之后怎么保存到电脑里面?

Matlab中图片保存的5种方法

Imwrite函数如何无损保存图片。

matlab中保存tif图像堆栈能保留原图像格式吗