2024-05-28 20:59:22 发布
网友
我是一个新的图像处理使用opencv和我的主要目标是完成开放的相交轮廓后,使用canny边缘检测的土壤样品的图像,因为我想分割土壤颗粒和检测面积的颗粒像素从图像中。。。我已经写了一个代码,它以一个点为输入,向各个方向发射光线,检测到它周围曲线的距离,可以关闭形状,但我不知道如何使用它来自动完成该图像中的轮廓,以便关闭所有打开的轮廓。。你知道吗
图像
这是执行边缘检测并使用双边滤波器平滑图像后的结果:
一个closing operation可以很好地弥补图片中的大部分空白:
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(6,6)) closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
对于大小为2的内核,您将获得:
通过增加内核大小,您将能够填补更大的空白。在某个时刻,您将不可避免地丢失有关背景的信息,因为前景对象之间的较大间隙(可能包括部分隐藏的背景对象)也将被闭合。例如,如果内核大小为6,您将得到:
您可以使用不同的内核大小和形式进行实验,看看哪种内核可以为您的应用程序产生最佳的结果。你知道吗
一个closing operation可以很好地弥补图片中的大部分空白:
对于大小为2的内核,您将获得:
通过增加内核大小,您将能够填补更大的空白。在某个时刻,您将不可避免地丢失有关背景的信息,因为前景对象之间的较大间隙(可能包括部分隐藏的背景对象)也将被闭合。例如,如果内核大小为6,您将得到:
您可以使用不同的内核大小和形式进行实验,看看哪种内核可以为您的应用程序产生最佳的结果。你知道吗
相关问题 更多 >
编程相关推荐