python - 使用opencv查找图像中的所有轮廓

标签 python opencv object-detection

有人可以帮我找出代码中的问题吗,我试图在图像中找到所有轮廓,然后在其上涂灰边,但似乎只涂了一些轮廓。
'''

image_find_goal = "/absolutePathWays.img"
kernel = np.ones((5,5),np.uint8)
#findGoal(image_find_goal)
img1 = cv.imread(image_find_goal,cv.IMREAD_GRAYSCALE)
ret,mask = cv.threshold(img1, 125, 255, cv.THRESH_BINARY_INV)
contours, hierarchy = cv.findContours(mask,cv.RETR_TREE,cv.CHAIN_APPROX_NONE)
for cnt in contours:
    approx = cv.approxPolyDP(cnt,0.01*cv.arcLength(cnt,True),True)
    if len(approx) == 4:
        cv.drawContours(mask,cnt,-1,(119,256,51),5)
mask3 = cv.resize(mask,(640,640))
cv.imshow('IMAGE', mask3)
cv.waitKey(0)
cv.destroyWindow(mask3)
'''

最佳答案

  • 我尝试打印len(approx)的值,很少值等于4,检测到的轮廓可能有较小的误差,由于这些误差可能会导致意外的结果。
  • 我尝试更改
  • if len(approx) == 4:
    
    if len(approx) >= 4:
    
    Resulting image
  • 您也可以尝试完全删除条件或根据需要对其进行编辑。
  • 关于python - 使用opencv查找图像中的所有轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64144150/

    相关文章:

    Python 迭代问题!

    python - OpenCV:以给定角度穿过轮廓质心的线

    python - 在 Yolov5 中计算边界框的高度和宽度

    image-processing - 如何选择图像集进行对象检测和对象跟踪?

    python - 涉及 `read` 的 Haskell 程序比等效的 Python 程序慢得多

    python - 比较两个数组并获得 PySpark 中的差异

    python - 合并两个日期时间索引的 pandas.dataframe 对象

    python - 如何从图像中剪切轮廓并将其保存到新文件

    python - 为什么我的 Opencv 没有响应或没有执行任何操作?

    opencv - 如何通过LabelImg为YOLO v3创建自定义数据集