matlab中jpg图像的rgb值的三维数组存入txt中

存入txt中将用C进行后续处理,希望能便于运用。可以有完整代码吗?菜鸟级。。。。。。... 存入txt中将用C进行后续处理,希望能便于运用。可以有完整代码吗?菜鸟级。。。。。。 展开
 我来答
tianxiawulang
2012-11-01 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2550万
展开全部
% 示例数据,首先转为真彩色
load durer
rgb=ind2rgb(X,map);

% 真彩数据可能有两种范围,0-1或者0-255,统一转换为0-255
if max(rgb(:)) <= 1
rgb = uint8(rgb*255);
end

% 如果从图片文件直接读入数据,不要前面的代码,直接从下面这句开始(注意改文件名)
% rgb = imread('D:\Documents\My Pictures\banner_Ardence.jpg');

% 打开文件用于保存结果
fid = fopen('JPEG2TXT.txt', 'wt+');
if fid == -1, return, end

% 写文件,按照红绿蓝顺序,每种颜色写成矩阵形式
for i = 1 : 3
for r = 1 : size(rgb, 1)
fprintf(fid, '%4i', double(rgb(r, :, i)));
fprintf(fid, '\n');
end
fprintf(fid, '\n');
end

fclose(fid);
更多追问追答
追问
前几天运行不对,今天又试了下好了,估计是的当时自己也没弄明白,犯了一些小错误~~我后来用的程序,和你的没什么大变化,就是输出结果没有分段:少了两个 fprintf(fid, '\n');。
我改动了txt的一些数据之后,怎么把它再输回matlab,然后再显示改动之后的图像?txt里的数据格式什么的都没变~谢谢!成功了加分哦~程序的循环部分也不太一样~
[l,m,n]=size(I);
for k=1:n
for i=1:l
for j=1:m
追答
1、我对自己写的代码有信心,虽不能保证从不出错,但错的可能性很小;
2、加不加分没那么重要,我并不在乎这点虚拟的东西,只希望自己的劳动和付出得到尊重;
3、如果你保证文件格式完全没变,而且数据范围也没问题,可以用下面的代码:
rgb=load('JPEG2TXT.txt','-ascii');
[r,c]=size(rgb);
rgb=permute(reshape(rgb,[r/3, 3, c]),[1 3 2]);
image(rgb/255)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式