利用opencv函数计算图像的梯度幅度和梯度方向
2016-10-19 16:38
423 查看
没有难点,就是为了方便使用记录,自己实现的话比较麻烦,直接使用内置函数计算比较省心。
重点是这个函数:
C++: void gpu::cartToPolar(const
GpuMat& x, const GpuMat& y, GpuMat& magnitude, GpuMat& angle, bool angleInDegrees=false, Stream&stream=Stream::Null())¶
重点是这个函数:
C++: void gpu::cartToPolar(const
GpuMat& x, const GpuMat& y, GpuMat& magnitude, GpuMat& angle, bool angleInDegrees=false, Stream&stream=Stream::Null())¶
Parameters: | x – Source matrix containing real components ( CV_32FC1 ). y – Source matrix containing imaginary components ( CV_32FC1 ). magnitude – Destination matrix of float magnitudes ( CV_32FC1 ). angle – Destionation matrix of angles ( CV_32FC1 ). angleInDegress – Flag for angles that must be evaluated in degress. stream – Stream for the asynchronous version. |
---|
#include<opencv2/opencv.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> using namespace std; using namespace cv; int main() { //*****注意:数据类型非常非常重要!!数据类型不一致,程序不报错,但是计算结果严重错误 //如果是float类型就全是float,double类型就全是double float data[3][3]={2,4,3, 7,5,6, 4,-8,9}; Mat mat=Mat(3,3,CV_32FC1,data); cout<<mat; cout<<endl<<"卷积运算"<<endl; Mat outmat1,outmat2; float k1[]={-1,0,1}; //水平方向的核 float k2[3][1]={-1,0,1}; //垂直的核 Mat Kore=Mat(1,3,CV_32FC1,k1); Mat Kore2=Mat(3,1,CV_32FC1,k2); filter2D(mat,outmat1,-1,Kore); //水平卷积运算 filter2D(mat,outmat2,-1,Kore2); //垂直卷积运算 cout<<outmat1<<endl; cout<<outmat2; Mat tidu; Mat jiaodu; cartToPolar(outmat1,outmat2,tidu,jiaodu,true); //角度的结果在0-360之间 cout<<"-----------------"<<endl; cout<<endl<<tidu; //梯度幅度值图 cout<<endl<<jiaodu; //角度图 waitKey(0); return 0; }
相关文章推荐
- 利用opencv函数对图像旋转后,按旋转偏移新计算新的图像外接四边形绘制
- Opencv中计算梯度、梯度幅值以及梯度方向的相关函数
- javascript图像处理―边缘梯度计算函数
- 利用OpenCV的Sobel算子求得图像的梯度信息
- OpenCV中phase函数计算方向场
- 利用rect函数截取原图的图像OPENCV
- opencv 利用仿射变换函数对图像进行任意角度旋转
- (未实用 需多个函数配套使用)opencv3.0 函数学习 10——morphologyEx 形态学图像处理:开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- // OpenCV 计算图像的平均梯度
- 利用OpenCV的threshold函数作图像的固定阈值化处理!
- 利用OpenCV计算图像的垂直和水平积分投影
- OpenCV学习之六: 使用方向梯度直方图估计图像旋转角度
- 关于OpenCV中利用函数cvConvert实现图像数据类型转换(8U->16S)
- OpenCV学习之六: 使用方向梯度直方图估计图像旋转角度
- opencv-ios开发笔记4 梯度方向直方图hog行人目标图像监测
- 利用OpenCV鼠标事件设置函数setMouseCallback显示图像像素坐标值!
- OpenCV 自学笔记33. 计算图像的均值、标准差和平均梯度
- OpenCV 使用方向梯度直方图估计图像旋转角度
- 利用OpenCV的Grabcut()函数实现图像的前景与背景的分割-并对Grabcut()作详细介绍
- 在OpenCV环境下写的灰度图像二维傅里叶换,幅值计算,频谱平移和将数值归一化到0到255区间的四个函数