Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 查找从选定点开始的最大连接Blob_Image Processing - Fatal编程技术网

Image processing 查找从选定点开始的最大连接Blob

Image processing 查找从选定点开始的最大连接Blob,image-processing,Image Processing,我试图从已经用某种颜色标记的图像中提取一个区域。如下图所示 我只想提取属于人行道的像素,也就是说,所有属于连接到图像中下部的黑色斑点的像素。在那一团之外有我不感兴趣的黑点。如果我能大致得到下面所示的区域 那太好了。有人知道一些可以做到这一点的通用算法吗?形态学使用一种泛洪算法进行区域生长 谢谢,您可以很容易地通过洪水填充来实现这一点。如果我使用ImageMagick在命令行上演示,因为它安装在大多数Linux发行版上,并且适用于macOS和Windows 因此,请记住,在您提供的包含轴的图像中,

我试图从已经用某种颜色标记的图像中提取一个区域。如下图所示

我只想提取属于人行道的像素,也就是说,所有属于连接到图像中下部的黑色斑点的像素。在那一团之外有我不感兴趣的黑点。如果我能大致得到下面所示的区域

那太好了。有人知道一些可以做到这一点的通用算法吗?形态学使用一种泛洪算法进行区域生长


谢谢,

您可以很容易地通过洪水填充来实现这一点。如果我使用ImageMagick在命令行上演示,因为它安装在大多数Linux发行版上,并且适用于macOS和Windows

因此,请记住,在您提供的包含轴的图像中,您标识为种子的像素约为440520,我们可以使用以下方法对所有与该颜色匹配的像素进行泛光填充,并用青色触摸种子:

convert scene.png -fill cyan -draw 'color 440,520 floodfill' result.png

或者,我们可以通过将非青色像素更改为白色,将青色像素更改为黑色来制作遮罩:

convert scene.png -fill cyan -draw 'color 440,520 floodfill' -fill white +opaque cyan -fill black -opaque cyan z.png
您可以从命令行简单地执行其他一千件事情,以进一步实现此功能。。。填补遮罩上的小洞,用遮罩做一个透明层——如果你需要帮忙的话,可以问更多的问题

如果要关闭图像中的孔,可能需要使用形态学函数。我有一个星期没有使用ImageMagick的电脑,所以我只能笼统地告诉你。从上面的纯黑白非灰色图片开始,然后尝试:

convert image.png -morphology open disk:3 result.jpg

试着用close、腐蚀或扩张替换上面的open。用磁盘、磁盘:3磁盘:7等进行实验。

该区域内是否有起点/种子?如果是,区域增长可能是一种可能性,也可能是一种主动轮廓类算法,如蛇或水平集。对于所有这些方法,您必须为活动轮廓定义一个标准或能量函数,使轮廓停止在您需要的极限。因为您谈论的是黑色斑点,所以可以使用基于颜色的标准,但它不一定非常健壮。对于形态学,请查看分水岭操作符。同样,关键是预处理数据。是的,我有一个起点,一个x=150和x=200之间的小矩形,大约10像素高。一个解决方案可能是首先提取图像中的所有黑色像素,使用形态学打开/关闭移除小的黑色寄生像素,然后提取图像中最大的黑色斑点。使用蛇可能很好,因为你可以在能量函数中控制轮廓的平滑度,也就是说,避免将轮廓向与主锤击相连的剩余小锤击方向增长。你能举一个填充小孔的例子吗?谢谢。我已经添加了一些未经测试的代码,因为我在路上已经有一段时间了。它应该给你一个如何填补漏洞的想法。