当我尝试执行以下操作时:
cv2.drawMatches(img1, keypoints1, img2, keypoints2, matches, None, matchColor=(0,255,0), singlePointColor=(0, 0, 255))
我收到此错误:
error: OpenCV(4.1.0) ../modules/features2d/src/draw.cpp:127: error: (-2:Unspecified error) in function 'void cv::_prepareImage(cv::InputArray, const cv::Mat&)' Unsupported source image: 'src.type() == CV_8UC1 || src.type() == CV_8UC3 || src.type() == CV_8UC4' where 'src.type()' is 21 (CV_32FC3)
昨天没有发生此错误,并且我没有更新环境或图像。我该如何修复这个错误?不确定如何正确转换它。
我可以看到错误发生在 here ,但不确定预期的源类型。
最佳答案
函数_prepareImage似乎接受CV_8UC1,这种类型是8U:Unsigned int 8位,C1:1个 channel 。但是,您似乎正在发送 32F,即 32 位,具有 3 个 channel 。
where 'src.type()' is 21 (CV_32FC3)
验证您拥有的图像的类型并相应地分配它。
关于python - OpenCV drawMatches函数错误(源类型错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57733908/