已解决
opencv-phase 函数
来自网友在路上 162862提问 提问时间:2023-10-14 04:34:07阅读次数: 62
最佳答案 问答题库628位专家为你答疑解惑
计算梯度强度和方向
梯度的方向与边缘的方向总是垂直的。图像中的边缘可以指向各个方向,通常会取水平(左、右)、垂直(上、下)、对角线(左上、右上、左下、右下)等八个不同的方向计算梯度。
角度的确定:
得到的角度一般不在前边指定的放个方向上,我们需要将角度分类到八个方向中。
假设有四条线,分别是0,45,90,135度线(0度和180重合,是一条线)。需要对通过(2)式求出的θ进行近似,分类到这四条线分成的八个区域中。
比如计算出的θ = 91 ° ,则应将其归类到67.5 ° — 112.5 °的区域,就是垂直向上方向。
八个区域如下图:
x方向的梯度
y方向的梯度
梯度的方向:θ =arctan(-255 / 255) = arctan(-1) = -45°
最后mat的计算结果:
样例
Mat mat1(Size( 4 , 1 ), CV_32FC1), mat2(Size( 4 , 1 ), CV_32FC1), mat3;
mat1.at < float > ( 0 , 0 ) = 1 ; mat2.at < float > ( 0 , 0 ) = 1 ;
mat1.at < float > ( 0 , 1 ) = 1 ; mat2.at < float > ( 0 , 1 ) = - 1 ;
mat1.at < float > ( 0 , 2 ) = - 1 ; mat2.at < float > ( 0 , 2 ) = 1 ;
mat1.at < float > ( 0 , 3 ) = - 1 ; mat2.at < float > ( 0 , 3 ) = - 1 ;
phase(mat1,mat2,mat3, true );
最后mat3的计算结果:
由此可以看出opencv phase计算出的角度从0°-360°是已x轴正方向为0°,逆时针旋转增加,符合我们平常角度的计算方式。
查看全文
99%的人还看了
相似问题
- PyTorch多GPU训练时同步梯度是mean还是sum?
- 梯度引导的分子生成扩散模型- GaUDI 评测
- 【机器学习】038_梯度消失、梯度爆炸
- 斯坦福机器学习 Lecture2 (假设函数、参数、样本等等术语,还有批量梯度下降法、随机梯度下降法 SGD 以及它们的相关推导,还有正态方程)
- 吴恩达《机器学习》6-4->6-7:代价函数、简化代价函数与梯度下降、高级优化、多元分类:一对多
- 深入理解强化学习——多臂赌博机:梯度赌博机算法的基础知识
- 利用梯度上升可视化卷积核:基于torch实现
- Pytorch里面参数更新前为什么要梯度手动置为0?
- LSTM缓解梯度消失问题
- 前馈神经网络自动梯度计算和预定义算子
猜你感兴趣
版权申明
本文"opencv-phase 函数":http://eshow365.cn/6-19380-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: HarmonyOS 远端状态订阅开发实例
- 下一篇: 《UnityShader入门精要》学习3