如何确定超像素的边界像素?

Posted

技术标签:

【中文标题】如何确定超像素的边界像素?【英文标题】:How to determine the border pixels of a superpixel? 【发布时间】:2021-09-14 18:13:37 【问题描述】:

我目前正在研究 Python 中的 SLIC(简单线性迭代聚类)版本,并且我已经在元组列表中拥有每个超像素的像素:

pixels_of_a_superpixel = [(1,2),(3,2),(5,7),...]

我想计算一些指标(更具体地说,紧凑性),我需要知道属于超像素边界的像素,因此我可以将这个数字除以该区域中的像素总数,但我不知道如何继续。

一种更通用的可视化我正在尝试做的事情的方法是查看下面的图片,这不是我遇到的问题,但很好地说明了我的目标。我已经有了图像上所有 0 的像素位置的列表,但我只想提取两个区域边界上的 0 的位置。

【问题讨论】:

您对“边框”像素的定义是什么? 很抱歉我没有更好地定义它。边界是指两个区域之间边界中的像素(但在 0 区域内)。我会重写它。 因此寻找具有不在同一个超像素中的邻居的像素。你有一个定义,你有所需的信息,但不确定问题是什么。 【参考方案1】:

如果我理解正确,您想获取边界上的像素索引。您可以先用一个小的结构元素对图像进行扩张,然后从扩张后的图像中减去原始图像(dilate(I) - I)。您可以使用 scikit-image 中的 binary_dilation 函数进行膨胀。

【讨论】:

以上是关于如何确定超像素的边界像素?的主要内容,如果未能解决你的问题,请参考以下文章

超像素分割的涵义

超像素分割算法

youcans 的 OpenCV 例程200篇173.SEEDS 超像素区域分割

用于图像中的超像素的相邻和非相邻超像素

youcans 的 OpenCV 例程200篇174.LSC 超像素区域分割

用matlab对一张圆的图像轮廓提取后,知道了圆的边界,怎么确定边界上点的像素坐标?高分悬赏啊啊啊