使用open完成边

2024-05-28 20:59:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个新的图像处理使用opencv和我的主要目标是完成开放的相交轮廓后,使用canny边缘检测的土壤样品的图像,因为我想分割土壤颗粒和检测面积的颗粒像素从图像中。。。我已经写了一个代码,它以一个点为输入,向各个方向发射光线,检测到它周围曲线的距离,可以关闭形状,但我不知道如何使用它来自动完成该图像中的轮廓,以便关闭所有打开的轮廓。。你知道吗

图像image 1

这是执行边缘检测并使用双边滤波器平滑图像后的结果: enter image description here


Tags: 代码图像目标样品像素方向opencv图像处理
1条回答
网友
1楼 · 发布于 2024-05-28 20:59:22

一个closing operation可以很好地弥补图片中的大部分空白:

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(6,6))
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

对于大小为2的内核,您将获得:

enter image description here

通过增加内核大小,您将能够填补更大的空白。在某个时刻,您将不可避免地丢失有关背景的信息,因为前景对象之间的较大间隙(可能包括部分隐藏的背景对象)也将被闭合。例如,如果内核大小为6,您将得到:

enter image description here

您可以使用不同的内核大小和形式进行实验,看看哪种内核可以为您的应用程序产生最佳的结果。你知道吗

相关问题 更多 >

    热门问题