Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
Python 检测背景噪声较大的重叠目标_Python_Opencv_Computer Vision_Object Detection_Imagefilter - Fatal编程技术网

Python 检测背景噪声较大的重叠目标

Python 检测背景噪声较大的重叠目标,python,opencv,computer-vision,object-detection,imagefilter,Python,Opencv,Computer Vision,Object Detection,Imagefilter,我目前正在尝试检测一些图像中的反射和重叠对象。这些图像都带有嘈杂的背景,我想检测的对象重叠严重。 以下是一些图像示例: 及 除了能够检测对象之外,我还想在将来对它们进行计数(因此,当有重叠时,需要知道有多少对象重叠) 我尝试的是先去噪图像,然后尝试应用canny edge image = cv2.fastNlMeansDenoisingColored(image,None,10,10,7,21) #denoise twice image = cv2.fastNlMeansDenoisingCol

我目前正在尝试检测一些图像中的反射和重叠对象。这些图像都带有嘈杂的背景,我想检测的对象重叠严重。 以下是一些图像示例: 及

除了能够检测对象之外,我还想在将来对它们进行计数(因此,当有重叠时,需要知道有多少对象重叠)

我尝试的是先去噪图像,然后尝试应用canny edge

image = cv2.fastNlMeansDenoisingColored(image,None,10,10,7,21) #denoise twice
image = cv2.fastNlMeansDenoisingColored(image,None,10,10,7,21)
imageblur = cv2.GaussianBlur(image,(5,5),0) #blur
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edged = cv2.Canny(gray, 10, 250)
hist = cv2.calcHist([gray],[0],None,[256],[0,256]) #check pixel histogram
#plt.hist(gray.ravel(),256,[0,256]); plt.show()

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (7, 7))
dilated = cv2.dilate(edged,kernel,iterations = 1)
closed = cv2.morphologyEx(dilated, cv2.MORPH_CLOSE, kernel)
imcompare = cv2.hconcat([edged,closed])
imcompare = cv2.resize(imcompare, (0,0), fx=0.7, fy=0.7) 
cv2.imshow('Compare',imcompare)
(cnts, _) = cv2.findContours(closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
以下是我的结果: ,

我不是一个简历专家,我知道我现在尝试的可能不会让我达到预期的效果,但我真的希望我能完成这个项目,所以任何提示或指导都非常感谢!我愿意学习任何可能有帮助的材料,我只想至少有一个我可以深入研究的起点

顺便说一句,我也试着研究不同的颜色空间、像素直方图、分水岭……等等,但对我来说,一些挑战性的部分是,我的“对象”不是一个颜色均匀的对象,而是覆盖了一个大范围的强度(因为它是反射的),背景也可能会分散注意力。我也考虑过使用神经网络、YOLO或其他一些ML方法,但我不知道哪种方法最好(因为我也想分离重叠的对象)

谢谢你的回复