b_m*_*b_m 5 python opencv computer-vision
phaseCorrelate似乎是OpenCV Python包装器的一个未记录的函数.C++函数的doc就在这里.
当我从Python调用该函数时,我收到以下错误:
cv2.error: ..\..\..\src\opencv\modules\imgproc\src\phasecorr.cpp:495: error: (-215) src1.type() == CV_32FC1 || src1.type() == CV_64FC1
Run Code Online (Sandbox Code Playgroud)
每个OpenCV 2函数都使用numpy数组,我怀疑这个函数是从旧的包装器中保留的.也许我需要在调用函数之前将numpy数组转换为CvMats?我怎么做?
您无需将其转换为cvMat.
错误表示您的输入应该是单通道float32或float64单通道.
因此,相应地转换图像.
两个图像应该是相同的大小.然后应用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)
Run Code Online (Sandbox Code Playgroud)
(除了亮度变化外,我的两张图像都是一样的.)
关于文档,您可以发布错误报告code.opencv.org.
| 归档时间: |
|
| 查看次数: |
4711 次 |
| 最近记录: |