Python 3.x 当我在python中使用open CV从图像中检测形状时,外部边界也会被识别,我能做些什么来阻止这种情况?
当我使用open CV从图像中检测形状时,外部边界也会被识别。我能做些什么来阻止这一切 这是我的代码:Python 3.x 当我在python中使用open CV从图像中检测形状时,外部边界也会被识别,我能做些什么来阻止这种情况?,python-3.x,opencv,border,object-detection,shapes,Python 3.x,Opencv,Border,Object Detection,Shapes,当我使用open CV从图像中检测形状时,外部边界也会被识别。我能做些什么来阻止这一切 这是我的代码: import cv2 import numpy as np img=cv2.imread("C:\\Users\\laksh\\OneDrive\\Desktop\\E-Yantra\\task_1a_explore_opencv\\task_1a_explore_opencv\\Task_1A_Part1\\Samples\\Sample1.png") #print(im
import cv2
import numpy as np
img=cv2.imread("C:\\Users\\laksh\\OneDrive\\Desktop\\E-Yantra\\task_1a_explore_opencv\\task_1a_explore_opencv\\Task_1A_Part1\\Samples\\Sample1.png")
#print(img)
img2 = cv2.imread('C:\\Users\\laksh\\OneDrive\\Desktop\\E-Yantra\\task_1a_explore_opencv\\task_1a_explore_opencv\\Task_1A_Part1\\Samples\\Sample1.png', cv2.IMREAD_COLOR)
font = cv2.FONT_HERSHEY_COMPLEX
imgGrey = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh= cv2.threshold(imgGrey,240,255,cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
approx=cv2.approxPolyDP(contour,0.01* cv2.arcLength(contour, True),True)
cv2.drawContours(img, [approx ],-1 ,(0,0,0),5)
cv2.imshow("shapes",img)
cv2.waitKey()
cv2.closeAllWindows()
此图显示,外部矩形以及两个内部形状都被重新加工:
发生这种情况是因为你的背景不是黑色的。OpenCV将其视为大矩形。若要避免这种情况,请更改bg颜色,或者从检测到的形状列表中删除具有图像大小的矩形。您还可以找到渐变并在图像周围绘制黑色边框,以从背景中删除边缘