2024-04-24 11:34:13 发布
网友
我在Python中搜索一个imgradientMATLAB等价物。我知道cv2.Sobel()和{},但它并不像{}在MATLAB中那样工作。如果我能得到imgradient.m函数的源代码,那也将是一个很大的帮助。在
imgradient
cv2.Sobel()
imgradient.m
另外,我知道cv2.Scharr()也可以使用,但是我不确定应该在参数中输入什么值来获得与MATLAB中的imgradient等价的结果?在
cv2.Scharr()
由于版权问题,我们不允许发布任何工具箱中的代码,而这些代码必须在MATLAB中获得许可证。相反,我能做的是提供执行等效操作的代码。imgradient只返回边缘贴图的大小和角度。您只需在x和{}方向分别应用cv2.Sobel,然后自己计算大小和角度。可以使用标准公式执行此操作:
x
cv2.Sobel
magnitude = sqrt(Gx.^2 + Gy.^2); angle = atan2(Gy, Gx);
Gx和Gy分别是x和{}方向上的导数,或者是每个方向的{}的输出。请注意,atan2将以弧度表示角度。MATLAB以度为单位报告角度,因此您必须另外乘以180 / pi。在
Gx
Gy
atan2
180 / pi
假设您的图像存储在img。然后在这个映像上运行cv2.Sobel两次,确保每次调用都指定要查找的派生的方向。之后,你自己计算大小和角度。因此:
img
由于版权问题,我们不允许发布任何工具箱中的代码,而这些代码必须在MATLAB中获得许可证。相反,我能做的是提供执行等效操作的代码。}方向分别应用
imgradient
只返回边缘贴图的大小和角度。您只需在x
和{cv2.Sobel
,然后自己计算大小和角度。可以使用标准公式执行此操作:Gx
和Gy
分别是x
和{atan2
将以弧度表示角度。MATLAB以度为单位报告角度,因此您必须另外乘以180 / pi
。在假设您的图像存储在
^{pr2}$img
。然后在这个映像上运行cv2.Sobel
两次,确保每次调用都指定要查找的派生的方向。之后,你自己计算大小和角度。因此:相关问题 更多 >
编程相关推荐