python - OpenCV Python 中的 phaseCorrelate 函数

标签 python opencv computer-vision

phaseCorrelate 似乎是 OpenCV Python 包装器的一个未记录的函数。 C++ 函数的文档是 here .

当我从 Python 调用该函数时,出现以下错误:

cv2.error: ..\..\..\src\opencv\modules\imgproc\src\phasecorr.cpp:495: error: (-215)    src1.type() == CV_32FC1 || src1.type() == CV_64FC1

每个 OpenCV 2 函数都使用 numpy 数组,我怀疑这个函数是旧包装器遗留下来的。也许我需要在调用函数之前将 numpy 数组转换为 CvMats?我该怎么做?

最佳答案

您不需要将其转换为 cvMat。

错误表明您的输入应该是单 channel 的 float32float64

因此相应地转换图像。

并且两张图片的大小应该相同。然后应用phaseCorrelate函数,如下:

>>> src1 = cv2.imread('sudoku.jpg',0)   # load first image in grayscale
>>> src2 = cv2.imread('su1.png',0)      # load second image in grayscale
>>> src1 = np.float32(src1)             # convert first into float32
>>> src2 = np.float32(src2)             # convert second into float32  
>>> ret = cv2.phaseCorrelate(src1,src2) # now calculate the phase correlation
>>> ret
(-0.024777238426224812, 0.0011736626157130559)

(我的两个图像是相同的,除了亮度变化。)

关于文档,您可以在 code.opencv.org 上发布错误报告。

关于python - OpenCV Python 中的 phaseCorrelate 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630043/

相关文章:

安卓边缘检测opencv

python - OpenCV 和 Python : Connected components analysis

python - 有没有开源工具可以自动为遗留代码生成测试用例?

python - MongoEngine 中如何让引用字段接受多个文档模式?

python - OpenCV Python 性能

javascript - Node.js 和 OpenCV

python - 如何将基于 pytorch cpu 的转换转换为基于 cuda 的转换?

c++ - 使用鼠标从视频上的矩形设置 ROI

Python Flask 作为 Cloud Foundry 应用程序与容器

Python:查找点是否位于多边形的边界上