【问题标题】:How can I get the required ROI in the below image using OpenCV (Python)?如何使用 OpenCV (Python) 在下图中获得所需的 ROI?
【发布时间】:2021-11-30 02:19:16
【问题描述】:

所以,我正在努力寻找可以在图像中看到的电子芯片上的小组件。到目前为止,我一直在努力寻找轮廓,然后应用形态学操作并绘制矩形。我附上原始的、必需的和实现的图像以及代码,以便社区可以轻松理解问题。

Original Image

import cv2
import os

# Load iamge, grayscale, adaptive threshold
image = cv2.imread('4.jpg')
result = image.copy()
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
thresh = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 
cv2.THRESH_BINARY_INV,51,9)

# Fill rectangular contours
cnts = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
    cv2.drawContours(thresh, [c], -1, (255,255,255), -1)

# Morph opend
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (9,9))
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=4)

# Draw rectangles
cnts = cv2.findContours(opening, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
    x,y,w,h = cv2.boundingRect(c)
    cv2.rectangle(image, (x, y), (x + w, y + h), (36,255,12), 3)

cv2.imshow('thresh', thresh)
cv2.imshow('opening', opening)
cv2.imshow('image', image)
cv2.waitKey()

Till now Achieved Result

This is the result that I am trying to achieve

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 仅使用一个样本很难为这个问题提供一个好的通用解决方案,如果你能收集到足够的训练数据,我建议使用像 YOLOV5 这样的检测模型,而不是采用经典方法

标签: python python-3.x opencv opencv-contour image-thresholding


【解决方案1】:

模板匹配已经足够了。只需将 ROI 用作模板图像即可。您可以改变分数以获得倾斜的元素。

看看这里: https://docs.opencv.org/master/d4/dc6/tutorial_py_template_matching.html

【讨论】:

    【解决方案2】:

    我认为你可以使用matchTemplate,但是当你使用该功能时,你会得到不止一个相似点,

    例如,您的图像有三个对象,第一个对象有多个相似点,这取决于您的阈值,您需要消除它。

    根据我的经验,我使用目标图像的一半大小作为边界距离,对结果点进行排序,然后假设第一个点是最佳点,然后消除最佳点附近边界距离内的相似点。下一个点将是您的第二个对象的点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多