OpenCV中phase函数计算方向场

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 一、函数原型​该函数参数angleInDegrees默认为false,即弧度,当置为true时,则输出为角度。phase函数根据函数来计算角度,计算精度大约为0.3弧度,当x,y相等时,angle为0。
一、函数原型

​该函数 参数 angleInDegrees 默认为false,即弧度,当置为true时,则输出为角度。
phase函数根据函数 来计算角度,计算精度大约为0.3弧度,当x,y相等时,angle为0。
数学上函数atan2为:

该函数的值域为可以通过对负数结果加的方法,将函数的结果映射到范围内。

而c++中atan2函数是通过正切值返回弧度的,并通过判断x,y的正负决定象限,因此c++中atan2函数值域是从-Pi到Pi的。

 

二、小实验

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°,逆时针旋转增加,符合我们平常角度的计算方式。

 

三、实际运用

使用函数来计算图像方向场

原始图像

代码    

 //变量

    Mat img = cv::imread"e:/template/***。png",0); 
    Mat grad1,grad2,angle;
    Sobel(imggrad1CV_64FC1, 1, 0); //求梯度
    Sobel(imggrad2CV_64FC1, 0, 1);
    blur(grad1,grad1,Size(6,6));
    blur(grad2,grad2,Size(6,6));
    phase(grad1grad2angletrue); //求角度
    normalize(angleangle, 0, 255, NORM_MINMAX); //归一化 方便显示,和实际数据没有关系
    angle.convertTo(angle,CV_8UC1);
    

说明

在进行角度计算之前,对sobel计算的两个结果分别进行了6*6的平均卷积,这是基本的去噪思路。而后到phase一行,角度就已经求出来了,后面是为了方便显示。

注意,这里的角度是以x正方向为0,以逆时针为正方向,0-360的度量。并且显而易见分了内外。这个圆是比较简单的,如果对于复杂图像,就必须对角度的概念有深入理解。

 

 

目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com
相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
计算机视觉
OpenCV-DFT最优尺寸cv::getOptimalDFTSize
OpenCV-DFT最优尺寸cv::getOptimalDFTSize
176 0
|
存储 Cloud Native Linux
C++ QT 实时进行网络监测
C++ QT 实时进行网络监测
|
Shell 网络安全 数据安全/隐私保护
debian安装ssh(傻瓜教程)+证书免密登录
debian安装ssh(傻瓜教程)+证书免密登录
2044 0
|
11月前
|
网络协议 安全 Go
Go语言的网络编程基础
【10月更文挑战第28天】Go语言的网络编程基础
155 8
|
9月前
|
存储 安全 网络安全
.[[BitCloud@cock.li]].wstop勒索病毒数据怎么处理|数据解密恢复
在数字化时代,数据安全威胁日益严重,勒索病毒以其独特的加密技术对个人和企业构成重大挑战。.wstop勒索病毒,如[[BitCloud@cock.li]].wstop等,通过加密用户文件要求赎金,传播途径多样,影响广泛。遭遇攻击时,及时求助专业服务(如vx技术服务号data388)至关重要。预防策略包括强化网络安全防护、定期更新软件、谨慎处理邮件附件、安装防病毒软件、定期备份数据及提高安全意识等。面对不断演变的勒索病毒,如2024年出现的多种变种,企业和个人应加强服务器安全加固与数据备份,共同维护网络安全环境。关注“91数据恢复”可获取更多帮助和支持。
572 14
|
12月前
|
运维 监控 安全
SD-WAN异地组网加速:提升企业网络性能的关键
随着企业全球化扩展,异地组网成为重要需求。传统广域网(WAN)存在延迟高、带宽不足等问题,而SD-WAN通过智能流量调度、降低成本、提升安全性和快速部署等优势,成为理想解决方案。本文详细解析SD-WAN在异地组网中的优势、应用场景及最佳实践,帮助企业实现高效跨地域网络连接。
|
Java 计算机视觉
我的自描外挂制作日志——FPS类游戏的自瞄【优化改进2】
我的自描外挂制作日志——FPS类游戏的自瞄【优化改进2】
248 0
|
Ubuntu Linux Shell
【linux】PetaLinux 2024.1安装笔记
【linux】PetaLinux 2024.1安装笔记
1216 0
|
缓存
react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)
react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)
224 0