二维数组特定范围的求和

1查看(最近30天)
Meenal沙
Meenal沙 20月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;
结束
结束
结束
我只想得到肿瘤的轮廓。
但是,我收到这个错误(在总和()部分),我无法解决:
错误使用总和
参数必须是一个正整数标量,一个唯一正整数的向量,或“所有”。

接受的答案

Mehmed萨德
Mehmed萨德 20月12日
编辑:Mehmed萨德 20月12日
我不明白你在代码中试图做什么。还有更简单的方法。
通过查看您的代码,我认为错误正在发生,因为您的for循环索引从i=1开始,并结束于i= 200。当你访问i-5或j-5时,它会给出错误,因为你对肿瘤的索引是负值。类似地,当你的循环到达终点时,它会尝试访问超出界限的200+5。所以运行for循环
i = 1 + 5:200-5
&
j = 1 + 5:200-5
编辑:
(肿瘤(我j-5)、肿瘤(i + 5 + 5))
我认为你在这一行要做的是访问肿瘤的I -5到I +5索引和j-5到j+5索引(即总共11x11个元素)。我说的对吗?
3评论
Meenal沙
Meenal沙 2020年5月13日
非常感谢。它在我尝试这样做时工作。
希望你安全。

登录发表评论。

更多的答案(0)

社区寻宝

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

开始狩猎!