【发布时间】:2017-10-01 06:40:00
【问题描述】:
我有一个灰度图像。我想使用 8 个邻居从左到右和从上到下逐个像素地扫描图像。 我想检查有多少邻居是 1 或更大,邻居的值是多少?我想根据邻居的值标记像素
[m n]=size(Img)
kernel = [-1 -1 -1; -1 8 -1; -1 -1 -1];
outputImage = conv2(I, kernel);
for i=1:m
for j=1:n
if(Img(I,j)==1) check neighbours
end
end
如果我有一个图像
D =
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 1 0 1 0
1 0 0 1 0 1
0 0 0 1 0 0
no.of 邻居被计为
邻居=
1 3 2 3 2 2
3 2 3 3 3 2
1 3 2 2 1 1
2 4 2 3 1 1
1 2 3 2 3 1
1 1 2 1 3 1
从左到右扫描 D(1,1)==1 and neighbour(1,1)>=1 所以将其标记为 1,因为没有标记邻居。如果标记的邻居之一,则复制它,如果超过一个邻居被标记,然后复制其中一个标签并将其标记为等效
我在这张图片上试过你的代码
但所有标签都是 1。但是 bwlabel 会产生不同的结果
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。