如何用matlab将读入的bmp图像格式文件的象素数据写入数组,并以文本文件格式(*.txt)输出。 5

如何用matlab将读入的bmp图像格式文件的象素数据写入数组,并以文本文件格式(*.txt)输出。这是一个很基础的题目,由于本人之前没学习过MATLAB软件,现在正在学... 如何用matlab将读入的bmp图像格式文件的象素数据写入数组,并以文本文件格式(*.txt)输出。这是一个很基础的题目,由于本人之前没学习过MATLAB软件,现在正在学习中,但还有地方不明白呀,请大家帮帮忙 展开
 我来答
大树根188
推荐于2018-04-30 · TA获得超过558个赞
知道答主
回答量:47
采纳率:100%
帮助的人:30.8万
展开全部
假设你有图片test.bmp,可以用如下的方式读入matlab,然后写到txt。
img_test = imread('test.bmp');
dlmwrite('b1.txt',img_test(:,:,1));
dlmwrite('b2.txt',img_test(:,:,3));
dlmwrite('b3.txt',img_test(:,:,3));
BMP是有3个波段的,所以这里写了三次,分别存入三个文件。
追问
后来我自己是这样做的
A=imread('lena.jpg');
A=rgb2gray(A);
fid=fopen('F.txt','wt');
[m ,n]=size(A);
for i=1:1:m
for j=1:1:n
if j==n
fprintf(fid,'%g\n',A(i,j));
else
fprintf(fid,'%g\t',A(i,j));
end
end
end
fclose(fid);
得到256*256的矩阵形式
那我最终对图像的处理一般是对哪个波段处理么?能再问一哥问题么?怎么将bmp格式转灰度图
追答
你对图像的那个波段进行处理是你自己控制的,不是程序自动实现的。
比如我上面代码中,分别把RGB三个波段存入文件。
比如你的代码中,把3个波段合成为1个波段,然后对这个波段进行处理。

BMP转灰度:

先试试这个看是否OK
img_test = imread('test.bmp');
b = rgb2gray(img_test);

如果不行,针对你这个问题,只需要将其中的第一波段存下即可转换。
img_test = imread('test.bmp');

b = img_test(:,:,1);

原因如下:

1 如果你的图本身就是灰度图,但是存成了RGB的bmp图像,那么只用存一个波段即可,因为这时三个波段一样。
2 如果你的图本身是彩色BMP,但是你需要的是灰度,那么同样只用存一个波段即可,因为这时三个波段虽然不同,但是只能保留一个波段。
(我没有研究过matlab中实现rgb2gray(A)这个函数的算法,但通常使用的算法有,RGB三者的平均值,或者按参数组合得到灰度)
237414975
2013-01-20 · TA获得超过646个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:149万
展开全部
比如有一张照片名字叫123456.bmp,那么写到矩阵a中:
a=imread('123456.bmp');
将矩阵a写到123456.txt中:
dlmwrite('123456.txt',a,'-append','delimiter', ' ');
-append表示追加输入,'delimiter', ' '表示矩阵元素用空格隔开
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式