OpenCV有没有一种方法可以可靠地分割像这样的图像?

2024-04-29 20:00:49 发布

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

是否有一种方法可以可靠地分割类似于此的产品图像?即使只是将这3种变体从边界中分离出来也会很好。问题是图像触及边界,我不知道如何处理!不是所有的图像都一样,所以我需要一些适应性很强的东西。非常感谢

enter image description here

这些是我使用https://docs.opencv.org/master/d3/db4/tutorial_py_watershed.html获得的结果。我的代码与教程相同

https://i.stack.imgur.com/sSyrx.jpg

https://i.stack.imgur.com/u14BX.jpg

https://i.stack.imgur.com/n4Dct.png

相反,我希望实现的是,至少对于包含内衣和摄像设备的图像,因为另一个要复杂得多,对于图像中没有接触到另一个对象的每个对象,都要单独选择并用蓝色勾勒出来。看起来有些内衣是按照我的预期挑选的(第一条减去松紧带),第二排的第一条(完美)


Tags: 对象方法https图像comdocs产品stack
1条回答
网友
1楼 · 发布于 2024-04-29 20:00:49

你可以使用轮廓,因为你是去和采取它从外面。因为边框是白色的,所以您可以反转阈值,这样您就可以得到如下结果:


import numpy as np
import cv2 as cv

im = cv.imread('5zdA0.jpg')
imgray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)

cv.imshow('image', imgray)
cv.waitKey(0)

ret, thresh = cv.threshold(imgray, 160, 255, 1)
contours, hierarchy = cv.findContours(thresh, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)


cv.drawContours(imgray, contours, -1, (0,255,0), 3)
cv.imshow('image', imgray)
cv.waitKey(0)

你将不得不为你的图像调整这些参数,但这应该会让你走

相关问题 更多 >