为什么Matlab复制输出图像?

12个视图(30天)
和
约5小时前
编辑: 为副总经理 约4小时前
你好,
我试图实现阈值技术在图像处理图像,它的工作原理,但图像出现了3次而不是一个,有人有一个想法出现了什么问题吗?
代码:
i = imread (“jk.jpg”);
[a, b] =大小(我);
新= 0(大小(i));
n =输入(输入阈值的关键);
x = 1: a
y = 1: b
如果我(x, y) < = n
新(x, y) = 0;
其他的
新(x, y) = 255;
结束
结束
结束
imshow(新);

接受的答案

为副总经理
为副总经理 20分钟前
编辑:为副总经理 约1小时前
这里有很多事情错了,没有一个应该导致一个图像显示多次……至少不是我注意到。
我= imread (“peppers.png”);%这可能是uint8, RGB
[a, b] =大小(我);%的RGB图像,b是错误的
新= 0(大小(i));%这个数组的类是“双”
%你正在编写一个脚本编程做点什么
%为什么强迫你的脚本停下来问你多次
%的数量你可以写成一个参数吗?
n = 128;%的输入(输入阈值的关键);
%这整个循环是不必要的
x = 1:% x和y是倒退
y = 1: b
如果我(x, y) < = n
新(x, y) = 0;
其他的
%你分配输出规模相反
%类预先分配的数组。输出图像
%将成为它的类比例不当,虽然
%总值截断不会间接在这种情况下。
新(x, y) = 255;
结束
结束
结束
imshow(新);
[b]% 384 x512图像
ans = 1×2
384 1536
如果你请求N输出大小(),第N个输出参数不是N维度的大小。的产品的大小n维度和更高的维度。令人惊讶的是,b是错的这一事实并不导致索引错误,虽然我不知道这将是很好的实践依靠这样的技巧。
这整件事可以简化。
inpict = imread (“peppers.png”);%阅读任何图像
阈值= 128;%阈值作为一个简单的参数
掩码= inpict >阈值;%,这是一个逻辑的形象
掩码= im2uint8(面具);%现在uint8形象
imshow(面具);

更多的答案(0)

下载188bet金宝搏


释放

R2023a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!