// OpenCV 计算图像的平均梯度
2014-03-31 20:24
357 查看
// OpenCV 计算图像的平均梯度
double calcAvG(const cv::Mat& img)
{
if(img.channels()!=1)
{
std::cout<<"输入必须是单通道图像!"<<std::endl;
return 0.0;
}
img.convertTo(img,CV_64FC1);
double tmp = 0;
int rows = img.rows-1;
int cols = img.cols-1;
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
double dx = img.at<double>(i,j+1)-img.at<double>(i,j);
double dy = img.at<double>(i+1,j)-img.at<double>(i,j);
double ds = std::sqrt((dx*dx+dy*dy)/2);
tmp = tmp+ds;
}
}
double imageAvG = tmp/(rows*cols);
return imageAvG;
}
double calcAvG(const cv::Mat& img)
{
if(img.channels()!=1)
{
std::cout<<"输入必须是单通道图像!"<<std::endl;
return 0.0;
}
img.convertTo(img,CV_64FC1);
double tmp = 0;
int rows = img.rows-1;
int cols = img.cols-1;
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
double dx = img.at<double>(i,j+1)-img.at<double>(i,j);
double dy = img.at<double>(i+1,j)-img.at<double>(i,j);
double ds = std::sqrt((dx*dx+dy*dy)/2);
tmp = tmp+ds;
}
}
double imageAvG = tmp/(rows*cols);
return imageAvG;
}
相关文章推荐
- OpenCV 自学笔记33. 计算图像的均值、标准差和平均梯度
- OpenCV 图像平均梯度
- OpenCV2+入门系列(四):计算图像的直方图,平均灰度,灰度方差
- 利用opencv函数计算图像的梯度幅度和梯度方向
- OpenCV2编程手册笔记之 6.5计算图像的拉普拉斯变换
- OpenCV 计算图像一维直方图
- 图像相似度计算之哈希值方法OpenCV实现
- 利用OpenCV计算图像的垂直和水平积分投影
- opencv学习(三十七)之图像直方图计算calcHist()
- OpenCV图像哈希计算及汉明距离的计算
- OpenCV 2.4+ C++ 边缘梯度计算
- 计算图像直方图方法,纠正calcHist调用错误(OpenCV)
- 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- Python语言opencv使用笔记(七)(图像梯度与边缘检测)
- Python OpenCV学习笔记之:图像梯度处理:Laplacian,Sobel算子
- 利用OpenCV的Sobel算子求得图像的梯度信息
- opencv计算图像距离变换
- opencv图像处理梯度边缘和角点
- Python下opencv使用笔记(七)(图像梯度与边缘检测)
- opencv python 6 图像梯度