我试图通过opencv python中的Sobel函数获得渐变的方向.问题是当我将x和y方向的梯度提供给相位函数时,无论相位度是真还是假,它总是给出相同的结果.以下是示例代码:
img = cv2.imread('frameBB.jpg',0)
sobelx = cv2.Sobel(img,cv2.CV_32F,1,0,ksize=3)
sobely= cv2.Sobel(img,cv2.CV_32F,0,1,ksize=3)
phase=cv2.phase(sobelx,sobely,True)
Run Code Online (Sandbox Code Playgroud)
然后我得到相位的直方图,并最终得到相位函数的最后一个参数为True或False的相同结果.两种情况下的直方图都是这样的.
这就是原始图像及其渐变图像的样子:
我不确定我在这里做错了什么,以及为什么我得到两个案例的弧度渐变角度.
正如您在 cv2.phase 的文档中所看到的:
cv2.phase(x, y[, angle[, angleInDegrees]])
Run Code Online (Sandbox Code Playgroud)
第三个位置参数实际上不是用于指定度/弧度,它用于输出数组.你想要改变的论点是angleInDegrees.您可以将其指定为第4个位置参数,或者通过使用关键字更明确地指定:
cv2.phase(sobelx,sobely,angleInDegrees=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1704 次 |
| 最近记录: |