python - OpenCV drawMatches函数错误(源类型错误)

标签 python opencv

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

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/

相关文章:

python - 在 groupby 之后获得最低值 - Pandas

python - 使用 floyd 时管理文件

c++ - 有没有更快的方法在 OpenCV 中应用亮度?

python opencv - Blob 检测或圆检测

python - conda与caffe一起安装openCV 3.4.2,但不能单独删除

python - 在 IPython 中自动重新加载模块

python - boost-python 当 C++ 方法返回 std::map<string,X*>

python - Docker 撰写缺少的 python 包

python - Python-多处理会降低性能

c++ - 如何在 OpenCV 3.4.7 中计算 CV_32FC1 cv::GpuMat 图像的(范围)直方图