【问题标题】:OpenCV drawMatches function error (wrong source type)OpenCV drawMatches 函数错误(错误的源类型)
【发布时间】:2019-08-30 22:47:37
【问题描述】:

当我尝试执行以下操作时:

cv2.drawMatches(img1, keypoints1, img2, keypoints2, matches, None, matchColor=(0,255,0), singlePointColor=(0, 0, 255))

我得到这个错误:

错误:OpenCV(4.1.0) ../modules/features2d/src/draw.cpp:127: 错误:(-2:Unspecified error) in function 'void cv::_prepareImage(cv::InputArray, const简历::垫&)' 不支持的源图像: 'src.type() == CV_8UC1 || src.type() == CV_8UC3 || src.type() == CV_8UC4' 在哪里 'src.type()' 是 21 (CV_32FC3)

这个错误昨天没有发生,我没有更新环境或图像。我该如何解决这个错误?不知道如何正确转换它。

我可以看到错误来自here,但不确定预期的源类型。

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    函数 _prepareImage 似乎接受 CV_8UC1 这种类型是 8U: Unsigned int 8-bit, C1: 1 个通道。但是,您似乎发送的是 32F,即 32 位,具有 3 个通道。

     where 'src.type()' is 21 (CV_32FC3)
    

    验证您拥有的图像的类型并相应地分配它。

    【讨论】:

      【解决方案2】:

      我只需将图像类型转换如下:

      cv2.drawMatches(np.uint8(img1), keypoints1, np.uint8(img2), 
          keypoints2, matches, None, matchColor=(0,255,0), singlePointColor=(0, 0, 255))
      

      【讨论】:

        猜你喜欢
        • 2019-10-19
        • 1970-01-01
        • 2015-10-26
        • 1970-01-01
        • 2018-04-28
        • 2019-02-14
        • 2021-10-02
        • 2021-10-30
        • 2018-11-22
        相关资源
        最近更新 更多