【问题标题】:DrawKeypoints function not working on OpenCV3.0/Python 2.7DrawKeypoints 函数在 OpenCV3.0/Python 2.7 上不起作用
【发布时间】:2016-06-29 23:23:05
【问题描述】:

我已经尝试使用 SIFT 检测器大约一周了,当我终于让它工作时,cv2.drawKeypoints() 函数出现错误。代码如下:

import cv2
import numpy as np

img = cv2.imread('\\home\\gaiarsa\\matrix\\poste.jpg')
gray = cv2.imread('\\home\\gaiarsa\\matrix\\poste.jpg', 1)

sift = cv2.xfeatures2d.SIFT_create()

dummy = np.zeros((1,1))

kp = sift.detect(gray, None)

img = cv2.drawKeypoints(gray, kp,dummy, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

cv2.imwrite('sift_keypoints.jpg', img)

运行后出现错误:

OpenCV Error: Assertion failed (!outImage.empty()) in drawKeypoints, file /home/gaiarsa/opencv/modules/features2d/src/draw.cpp, line 113
Traceback (most recent call last):  
  File "sift.py", line 14, in <module>
    img = cv2.drawKeypoints(gray, kp,dummy, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.error: /home/gaiarsa/opencv/modules/features2d/src/draw.cpp:113: error: (-215) !outImage.empty() in function drawKeypoints

当我尝试从函数参数中删除 dummy 数组时,我收到以下错误:

Traceback (most recent call last):
  File "sift.py", line 14, in <module>
    img = cv2.drawKeypoints(gray, kp, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
TypeError: Required argument 'outImage' (pos 3) not found

【问题讨论】:

  • 试试cv2.drawKeypoints(gray, kp, img, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)(没有img = dummy
  • 试过了。它没有用。仍然出现 !outImage.empty() 错误
  • 那么没有线索..祝你好运! ;D
  • 有时源图像和目标图像不一样,有些标志不起作用

标签: python-2.7 opencv3.0 sift


【解决方案1】:

问题是将 png 文件作为 jpeg 读取。我一改就行了

【讨论】:

    【解决方案2】:

    只需检查您的文件名。如果它们是错误的,您将不会收到很好的错误消息,而只会得到 NULL 指针或其他任何东西,并且程序只会提前中断,给出这样的消息......

    【讨论】:

      【解决方案3】:

      路径不存在!(如果扩展名为.png则相同)

      '\home\gaiarsa\matrix\poste.jpg'

      使用前检查路径:

      import os
      if not os.path.exists('path/file'):
          print('Incorrect path or file missing')
          exit(0)
      

      【讨论】:

        猜你喜欢
        • 2014-06-01
        • 1970-01-01
        • 2020-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-19
        • 1970-01-01
        相关资源
        最近更新 更多