图像积分图的计算
2016-01-16 16:18
302 查看
图像积分图的定义百度一下。
/* *@function IntegralImage.cpp *@brief 计算积分图 *@author ltc *@date 18:14 Tuesday,December 1st,2015 */ #include<opencv2\core\core.hpp> #include<opencv2\highgui\highgui.hpp> #include<opencv2\imgproc\imgproc.hpp> #include<iostream> using namespace std; using namespace cv; int main(int argc,char* argv[]) { //读取图像 Mat image; image=imread("lena.bmp",IMREAD_COLOR); if(image.empty()) { cerr<<"Failure in loading image"<<endl; return -1; } //转换成灰度图像 Mat grayImage; cvtColor(image,grayImage,COLOR_BGR2GRAY); //定义、计算积分图像,积分图像比灰度图像多一行一列 Mat integralImage=Mat::zeros(grayImage.rows+1,grayImage.cols+1,CV_32SC1); for(int i=0;i<grayImage.rows;i++) { for(int j=0;j<grayImage.cols;j++) { integralImage.at<int>(i+1,j+1)=integralImage.at<int>(i,j+1) +integralImage.at<int>(i+1,j) -integralImage.at<int>(i,j) +grayImage.at<unsigned char>(i,j); } } //真正的积分图像 Mat realIntegralImage=integralImage(Range(1,integralImage.rows),Range(1,integralImage.cols)); /*cout<<realIntegralImage.row(0)<<endl;*/ //Opencv中自带的积分图像计算 Mat integralImage_integral; integral(grayImage,integralImage_integral); //下面两行代码用来对比自己的积分图像和Opencv自己计算的积分图像是否一样 //cout<<integralImage.row(1)<<endl; //cout<<integralImage_integral.row(1)<<endl; imshow("src",image); imshow("gray",grayImage); waitKey(0); return 0; }
相关文章推荐
- cmd环境下实现:为命令设置别名、启动cmd时自动执行bat
- 利用yum下载软件包的三种方法
- win7系统安装Windows Live Writer失败提示错误代码0x80190194的解决方法
- 读取视频的常见错误——cvCreateFileCapture
- 深度学习历史图
- 黄聪:如何使用WebKitBrowser调用元素点击事件(C#)
- git clean 使用方法
- IOS中程序如何进行推送消息(本地推送,远程推送)
- python3.4实现http请求
- 深度学习历史图
- 通过使用GDI+和CImage类配合实现针对目标窗体的子控件进行截图
- linux/unix下常用时间函数
- ubuntu 下操作目录,出现Permission denied的解决办法
- 编写一个函数reverse_string(char * string)(递归实现)
- Linux下option参数的处理
- 【笔记】org.apache.ibatis.type.TypeException: Could not resolve type alias 'tableMapToModel'.
- 数据库——SQL中EXISTS怎么用3(转)
- 实现ViewPager底部条跟着ViewPager滑动的效果
- 受用不尽的Gradle使用方法与技巧
- about "static block"(静态块)