资源简介
利用opencv实现图像任意点5*5邻域的均值和方差计算
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
using namespace cv;
int main(int argcchar* argv[])
{
IplImage* src=cvLoadImage(“grad.jpg“0);
//cvSetImageROI(srccvRect(005050));
IplImage* img1=cvCreateImage(cvGetSize(src)src->depthsrc->nChannels);
cvCopyImage(srcimg1);
cout<width< CvMat* img2=cvCreateMat(img1->heightimg1->widthCV_64F);
CvMat* sum=cvCreateMat(img1->height+1img1->width+1CV_64F);//积分图,首行首列都是0,所以高和宽均加1
CvMat* sqsum=cvCreateMat(img1->height+1img1->width+1CV_64F);//平方积分图
CvMat* tilted_sum=cvCreateMat(img1->height+1img1->width+1CV_64F);//旋转45度积分图
for(int i=0;iheight;i++)
{
for(int j=0;jwidth;j++)
{
cvmSet(img2ijimg1->imageData[i*img1->widthStep+j]);//img2是src的复制图
}
}
//求积分图和平方积分图
cvIntegral(img2sumsqsumtilted_sum);
//求各点5*5领域的积分平方e2x
CvMat* square=cvCreateMat(img1->height+4img1->width+4CV_64F);
CvMat* e2x=cvCreateMat(img1->height+1img1->width+1CV_64F);//Ex
cvZero( square );
cvZero( e2x );
//5*5
for(int i=2;irows-2;i++)
{
for(int j=2;jcols-2;j++)
{
cvmSet(squareijcvmGet(sumi-1j-1));
}
}
//5*5邻域的均值e2x
long double wh=0.0w2h2=0.0w2h2_=0.0w2_h2=0.0w2_h2_=0.0;
for(int i=2;irows-2;i++)
{
for(int j=2;jcols-2;j++)
{
w2h2=cvmGet(squarei+2j+2); // Get sum(i+2j+2);
w2h2_=cvmGet(squarei+2j-2);
w2_h2=cvmGet(squarei-2j+2);
w2_h2_=cvmGet(squarei-2j-2);
wh=w2h2-w2h2_-w2_h2+w2_h2_;
cvmSet(e2xi-1j-1wh/25);
}
}
//求各点5*5领域的平方积分ex2
CvMat* square2=cvCreateMat(img1->height+4img1->width+4CV_64F);
CvMat* ex2=cv
- 上一篇:C++ blackjack经典21点小游戏 课程设计
- 下一篇:蓝噪声采样代码
相关资源
- opencv 视觉 追踪跟踪 经典kcf算法
- c语言均值滤波源程序
- C语言和汇编语言的混合编程
- vc++6.0配置OpenCV
- 基于OpenCV的图像检索系统(源码)
- test_opencv.cpp
- opencv提取图片中人轮廓
- Python3+Opencv343环境搭建 dll load failed问
- 04_图像编辑器实现.zip
- 基于opencv人眼定位算法C++工程
- 图像连续拼接算法源码
- opencv 2.4.8 官方最新版安装与配置
- C++实现opencv+yolo+tensorflow+deepsort.txt
- Opencv封装成dll供.net调用方法
- 相机标定棋盘
- 自适应图像增强完整OpenCV代码
- 在mfc中picture控件中显示Mat图片
- OpenCv实现两个图片的相似度
- opencv椭圆拟合长短轴比
- Retinex算法,C++,opencv
- 利用opencv实现的条形码检测与识别C
- Opencv2.4.12 SVM手写数字识别
- opencv 正脸+左右侧脸全检测
- 激光雷达数据读取、显示、分割、直
- CvvImage类库
- 基于opencv的C++人眼识别以及眨眼检测
- 在VS2012上基于opencv的C++人眼识别与眨
- 基于暗通道和导向滤波的图像去雾算
- 根据原图和二值图得到分割彩图
- qt界面化实现各种滤波函数
评论
共有 条评论