二维数组特定范围的和

1次查看(最近30天)
Meenal沙
Meenal沙 2020年5月12日
编辑: Meenal沙2020年5月13日
我有一个叫肿瘤的灰度图像。
我需要找到强度大于0的区域。
我有另一个可变的轮廓显示原始图像的轮廓。
G1是一个空数组。
为了正确地找到它,我使用了以下代码:
i = 1:200
j = 1:200
如果(大纲(i, j) > 0) & &金额(金额(肿瘤(我j-5)、肿瘤(i + 5, j + 5))) > 0)
G1 (i, j) = 255;
结束
结束
结束
我只想知道肿瘤的轮廓。
然而,我得到这个错误(在sum()部分),我无法解决它:
错误使用和
参数必须是一个正整数标量,一个唯一正整数的向量,或“所有”。

接受的答案

Mehmed萨德
Mehmed萨德 2020年5月12日
编辑:Mehmed萨德 2020年5月12日
我不明白你想在代码里做什么。有更简单的方法。
通过查看你的代码,我认为错误发生了,因为你的for循环索引从i=1开始,在i= 200结束。当您访问i-5或j-5时,它将给出错误,因为您正在为肿瘤索引负值。类似地,当循环结束时,它将尝试访问200+5,这是越界的。run you for loop from
i = 1 + 5:200-5
j = 1 + 5:200-5
编辑:
(肿瘤(我j-5)、肿瘤(i + 5 + 5))
我认为你想在这一行做的是访问肿瘤的I -5th到I +5th索引和j-5th到j+5th索引(即总共11x11个元素)。我说的对吗?
3评论
Meenal沙
Meenal沙 2020年5月13日
非常感谢。当我试着这么做时,它成功了。
希望你安全。

登录评论。

更多的答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!