matlab中直接输出一个数,matlab中输出图像数据的一个题

问题描述:

matlab中输出图像数据的一个题

i=imread('clown.jpg');

[x,y]=size(i);

for j=1:x,

for k=1:y,

i(j,k)

end

end

为什么输出ans和i矩阵中相对应的元素有些相同有些不同呢 怎么回事 是for用错了 还是数据格式问题 纠结了一个晚上

1个回答

分类:

综合

2014-12-02

问题解答:

我来补答

这样看你的图像是否是灰度图.

假设原图像是100x100大小.

1.如果它是灰度图,那么[x,y]=size(i);后,x是100,y是100,你这段代码是没有问题的.

2.如果它是一个彩色图,那么实际它的大小是100x100x3,3表示有RGB三个分量.所以[x,y]=size(i);后,x是100,而y是300,那么你这段代码就有问题.

再问: 我的确实是灰度图像 是不是matlaba问题啊 还有上段代码为什么在matlab7.1上是个死循环啊 停不下来

再答: 在i=imread('clown.jpg');加上clear all; 如: clear all; i=imread('clown.jpg');

再问: 恩 大侠要不试下 这段代码 为什么ans值和灰度矩阵j中相应元素的值不一样呢 我这段代码就是对矩阵中的每个元素进行相应不同的处理 但是读取出来的值很明显是随机值 为什么会是这种情况 新手 谢谢了

再答: 你的代码已试过,如果i是一副灰度图的话,运行正常,输出的值与原图中的灰度值相符。 具体的检查方法是:打开工作空间中的i,看最后一行的最后几列的值,与输出的i(j,k)的值是否相符,结果是相符的。

再问: 组后一行的最后几个是没有问题 可是第一行的都有问题啊 不相符 不知道你的有没有这种情况 我在好几台机子不同的matlab上都试了 都有这样的问题 求正解

再答: 第一行有问题是因为command里可以显示的结果是有限的,所以后面输出会把前面的输出覆盖掉。 你执行代码,只看第一行,就知道是没问题的。 clc; i=imread('clown.jpg'); [x,y]=size(i); for j=1:1 %这里只输出第一行 for k=1:y i(j,k) end end 如果不确定,可以写文件查看,代码如下: clc; i=imread('clown.jpg'); fid = fopen('data.txt', 'w'); [x,y]=size(i); for j=1:x fprintf(fid,['第',int2str(j),'行:\n']); for k=1:y fprintf(fid,'%d ',i(j,k)); end fprintf(fid,'\n\n'); end fclose(fid); 然后打开当前路径下面的data.txt,就可以看到结果了。

展开全文阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值