移除二值图像中的边框像素

24次浏览(最近30天)
Apoorva Maiya
Apoorva Maiya 2020年5月13日
回答: Apoorva Maiya2020年5月17日
大家好,下面是一个二进制图像
我想移除下图中红色(我用油漆高亮)的边框像素
我不能使用模糊边界的任务,因为它消除了任何像素附加到边界。所以我想我们可以写一个循环,把每一行的第一个和最后一个白色的oixel设为0。我不太确定如何编写循环。有人能帮我解决这个问题吗?
9日评论
Apoorva Maiya
Apoorva Maiya 2020年5月17日
谢谢大家的回复,我能够自己写代码。

登录评论。

接受的答案

Apoorva Maiya
Apoorva Maiya 2020年5月17日
B = bwskel (img);%场大病形象
(行,坳)= (B)大小;
找到右边和左边
rightEdgeColumn = 0(1行);
leftEdgeColumn = 0(1行);
行= 1:行
col1 = find(B(row,:), 1,“最后一次”);
col2 = find(B(row,:), 1,“第一”);
如果~ isempty (col1) & & ~ isempty (col2)
rightEdgeColumn(行)= col1;
leftEdgeColumn(行)= col2;
结束
结束
%%删除边缘像素
i = 1:长度(rightEdgeColumn)
k = rightEdgeColumn(我);
如果k = = 0%%如果整行没有白色像素
B(我:)= 0;
其他的
我(k) = 0;
结束
结束

更多的答案(0)

下载188bet金宝搏

社区寻宝

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

开始狩猎!