如何区分两个输入图像?

时间:2019-07-17 12:07:44

标签: python opencv

i我只想处理图像。问题是我有两种输入图像。一个精确地捕捉到卡图像,另一个保持在桌上,其中信用卡位于捕捉中心,从而捕捉另一个图像。我只想在获取输入并阅读后对输入图像进行分类。我正在尝试开发Python和OpenCV。

我已经尝试过一些寻找边缘的方法,但是我期待着比那一步更好的方法。

cnts = imutils.grab_contours(cnts)
cnts = sorted(cnts, key=cv2.contourArea, reverse=True)[:5]  

for c in cnts:
    peri = cv2.arcLength(c, True)
        approx = cv2.approxPolyDP(c, 0.02 * peri, True)

        if len(approx) == 4:
                screenCnt = approx
            break

我需要一种图像处理方法来区分使用python和opencv的输入图像场景

1 个答案:

答案 0 :(得分:0)

我认为您想要的是follow a tutorial like this。基本上,您需要这样做:

  • 关键点提取。您会在网上找到很多有关SIFT和SURF的资料,但您需要为此提供contrib库。如果您没有贡献,建议您使用风险,赤字或ORB。
  • 然后您可以进行关键点匹配。
  • 然后,您可以使用距离或距离比测试滤除不良匹配项。

在此之后,根据您所拥有的良好匹配项的数量,您将很清楚对象是否在图像中。如果您想进一步查找屏幕上的图像/过滤掉误报,可以执行以下操作:

  • 找到火柴的单应性
  • 检查内衬
  • 变换透视图以在图像/场景上找到它

祝你好运!