我正在尝试创建一个Python脚本来检测线的孔,末端和起点。我认为openCV可以很好地实现这一目标。
因此,举例来说,一切都始于这张图片:
最后,我要实现的是:
因此,我首先将图像导入Python并进行灰度转换。现在,我想到了使用该goodFeaturesToTrack()方法跟踪孔的想法。通常用于查找图像中的角。
但是,效果不是很好,因为在此之后脚本会知道这些点,但是它不知道某个点是来自孔还是该行的起点或终点。另一个问题是,如果我使用其他图像,则此方法不仅可以检测到孔的起点,起点和终点,而且可以检测到更多的点。
这是我的完整代码,可以更好地理解我的问题:
import cv2
import numpy as np
import matplotlib.pyplot as plt
# lodes in img
img = cv2.imread('png1.png', cv2.IMREAD_COLOR)
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
corners = cv2.goodFeaturesToTrack(img_gray, 200, 0.05, 10)
for corner in corners:
x, y = corner.ravel()
cv2.circle(img, (x,y), 7, (255,255,0), -1)
cv2.imshow('img',img)
Run Code Online (Sandbox Code Playgroud)
我不知道解决这个问题。