//利用opencv读取图像像素信息
#include"cv.h"
#include"cxcore.h"
#include"highgui.h"
using namespace cv;
int main()
{
// char * filename="C:\\Users\\Zhong.LY\\Pictures\\52.jpg";//文件路径
// IplImage* pImg=NULL;
// pImg=cvLoadImage(filename,0);//图片指针,0代表load的图像默认转化为灰度图
// Mat pImg_M=imread(filename,1);
// IplImage* pImg1=cvCreateImage(cvSize(200,200),IPL_DEPTH_8U,1);
// cvRectangle(pImg,cvPoint(100,100),cvPoint(150,150),cvScalar(110,5,111),1,8,0);
// cvNamedWindow("hello",1);
// cvShowImage("hello",pImg);
// cvWaitKey(0);
//
//高斯平滑
int kernel[3][3]={1,2,1,2,4,2,1,2,1};
char * filename="C:\\Users\\Zhong.LY\\Pictures\\52.jpg";//文件路径
IplImage* pImg=NULL;
pImg=cvLoadImage(filename,0);
IplImage* pImg1=cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,1);
for(int i=0;i<pImg->height-1;i++)
{
for(int j=0;j<pImg->width-1;j++)
{
CvScalar a=cvGet2D(pImg1,i,j);
CvScalar pixelvalue=cvGet2D(pImg,i,j);
CvScalar pxvalueleft=cvGet2D(pImg,i,j-1);
CvScalar pxvalueright=cvGet2D(pImg,i,j+1);
CvScalar pxvalueup=cvGet2D(pImg,i-1,j);
CvScalar pxvaluedown=cvGet2D(pImg,i+1,j);
CvScalar pxvaluelu=cvGet2D(pImg,i-1,j-1);
CvScalar pxvaluerd=cvGet2D(pImg,i+1,j+1);
CvScalar pxvalueld=cvGet2D(pImg,i+1,j-1);
CvScalar pxvalueru=cvGet2D(pImg,i-1,j+1);
CvScalar _pixelvalue;
_pixelvalue.val[0]=(pxvaluelu.val[0]*1+pxvalueup.val[0]*2+pxvalueru.val[0]*1+
pxvalueright.val[0]*2+pixelvalue.val[0]*4+pxvalueright.val[0]*2+
pxvalueld.val[0]*1+pxvaluedown.val[0]*2+pxvaluerd.val[0]*1)/16;
cvSet2D(pImg1,i,j,_pixelvalue);
}
}
cvNamedWindow("src",1);
cvShowImage("src",pImg);
cvNamedWindow("change",1);
cvShowImage("change",pImg1);
cvWaitKey(0);}