【问题标题】:cv2.phase gives the angle in radiancv2.phase 以弧度给出角度
【发布时间】:2016-08-15 19:46:04
【问题描述】:

我正在尝试通过 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)

然后我得到相位的直方图,并最终得到相同的结果,相位函数的最后一个参数是 True 或 False。对于这两种情况,直方图看起来像这样。

这是原始图像及其渐变图像的样子:

我不确定我在这里做错了什么,以及为什么我在这两种情况下都得到了弧度的梯度角。

【问题讨论】:

  • 哪个 OpenCV 版本?
  • 版本为3.1.0

标签: python opencv


【解决方案1】:

您可以从文档here 中看到 cv2.phase:

cv2.phase(x, y[, angle[, angleInDegrees]])

第三个位置参数实际上不是用于指定度数/弧度,它用于输出数组。您要更改的参数是angleInDegrees。您可以将其指定为第四个位置参数,或者更清楚地使用关键字:

cv2.phase(sobelx,sobely,angleInDegrees=True)

【讨论】:

  • 这是做什么的?一个好的答案将独立存在,即使没有问题。
猜你喜欢
  • 2014-10-19
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 2013-10-15
  • 2018-04-04
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多