建工程步骤省略!!!!!!1、项目—demo(自己取项目名称)属性---配置属性—VC++目录—包含目录:D:\opencv\opencv\build\include;)2、配置属性—VC++目录—库目录:D:\opencv\opencv\build\x86\vc10\lib3、链接器—输入—附加依赖项—添加一下这些(针对Debug调试):opencv_ml2410d.libopencv_calib3d2410d.libopencv_contrib2410d.libopencv_core2410d.libopencv_features2d2410d.libopencv_flann2410d.libopencv_gpu2410d.libopencv_highgui2410d.libopencv_imgproc2410d.libopencv_legacy2410d.libopencv_objdetect2410d.libopencv_ts2410d.libopencv_video2410d.libopencv_nonfree2410d.libopencv_ocl2410d.libopencv_photo2410d.libopencv_stitching2410d.libopencv_superres2410d.libopencv_videostab2410d.lib◆按F5运行,若出现这样的情况:无法找到系统文件,缺少…..demo.exe程序。
则需下载tbb41_20130314oss_win.zip,将其解压后文件夹中包含的bin文件夹,复制到D:\opencv\opencv\build\common\tbb里;若还不行,可关掉当前文件,重新建立新项目,再进行配置!◆完成以后,计算机属性---高级系统设置—环境变量---选择path—双击—添加路径:D:\opencv\opencv\build\x86\vc10\bin;D:\opencv\opencv\build\common\tbb\ia32\vc10配置完成!!!!!!永久的配置:上述步骤创建的两个属性表OpenCV_debug_property.props和OpenCV_release_property.props保存到一个常用的文件夹中。
当创建新工程时,只需在属性管理器中添加上述两个属性表就可,快速完成配置OpenCV的步骤。
学习笔记:加载图像并显示的程序:没有把include文件夹里的opencv与opencv2文件夹添加到包含目录下。
出现“无法打开源文件”的错误提示(红波浪线)。
●加载播放AVI视频:理解了程序以及各个函数意义:●载入图像并平滑处理:这个问题如何解决??改成了这个!!!!!载入彩色图像,变为灰度图像,并缩小图像2次,然后进行边缘检测:高斯滤波算法处理:处理前处理后主要程序:中值滤波处理:处理前处理后主要程序:领域平均滤波:处理前:处理后下图为小波变换后的图像,通过自己建立小波变换函数与逆变换函数,对任意大小的彩色图像进行任意层次的变换。
具体代码已有注释说明,遇到几个问题:1、刚开始将DWT函数与IDWT函数放在了main函数之后,程序运行时出现错误:无法找到DWT与IDWT标识符;然而将两个子函数放在了main函数之前,运行就正确了,但此时还没有图像显示。
2、1正确以后,没有图像显示,我又再最后加了一句cvWaitKey(0);的语句,再运行,就出现了结果,基本正确。
3、我想连原图一起显示,可是试了好多都不行!!!小波变换的滤波方法:将原始图像在水平、垂直和对角线方向进行小波分解,将图像分解为1个低频图像和3个高频图像,属于频域滤波!基本过程:小波变换分解—设置一定的阈值对小波系数进行处理—小波逆变换得到空域图像。
处理前小波变换后彩色图像直方图均衡化:原始图像直方图化均衡后对比度线性展宽:载入原图如下所示(按着顺序来的):转换成灰色图像,如下所示:刚开始我写的程序,在求存放图像各个灰度级出现的次数的时候,将x,y变量的范围只取到了256,所以造成最后变换的图像无法将我载入的图像的所有像素显示完,所以出现了如下结果的照片:结果经查找资料后发现,x与y的取值范围应该这样来取(选取输入图像的宽度和高度的范围),才能保证载入的图像的所有灰度级都被计算完整:将程序改成这样以后,再运行,就能的到一张完整的经过对比度调整的图像:本来打算加几行代码,也显示对比度增强的彩色图像,结果发现按照我自己的想法加上代码,变成了这样:右侧的全灰是因为取得255造成的;而且我还觉得图像好像都左右颠倒一下,这是为什么???彩色依然显示灰色是因为只有一个通道“3“是”1“的时候将1通道改成3了以后,为什么只会显示一半的彩色图像???把3改成了4,没有彩色,反而有种加了颜色的感觉;就变成了这个样子的了!!!!!彩色对比度增强的程序:,没成功:::后面的程序就是对比度增加的程序了!!!!!!!int main(){IplImage*in_color=cvLoadImage("pp.jpg",-1);//载?入¨?图ª?像?cvNamedWindow("原-图ª?",CV_WINDOW_AUTOSIZE);cvShowImage("原-图ª?",in_color);IplImage*Y=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,1);IplImage*Cb=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,1);IplImage*Cr=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,1);IplImage*Compile_Ycbcr=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,3);IplImage*dst1=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,3);int i;cvCvtColor(in_color,dst1,CV_BGR2YCrCb);///CV_BGR2YCrCb=36* Constants for colorconversion */cvSplit(dst1,Y,Cb,Cr,0);//彩¨º色¦?图ª?像?分¤?割?函¡¥数ºyImageStrechByHistogram(Y,dst1);//将?输º?入¨?的Ì?Y图ª?像?,ê?经-对?比À¨¨度¨¨增?加¨®后¨®,ê?dst1输º?出?for(int x=0;x<in_color->height;x++){for(int y=0;y<in_color->width;y++){CvMat*cur=cvCreateMat(3,1,CV_32F);//cvCreateMat( int rows, intcols, int type );/* Allocates and initializes CvMat header and allocates data */cvmSet(cur,0,0,((uchar*)(dst1->imageData+x*dst1->widthStep))[y]);//cvmSet( CvMat* mat, int row, int col, double value )cvmSet(cur,1,0,((uchar*)(Cb->imageData+x*Cb->widthStep))[y]);cvmSet(cur,2,0,((uchar*)(Cr->imageData+x*Cr->widthStep))[y]);for(i=0;i<3;i++){double xx=cvmGet(cur,i,0);//cvmGet( constCvMat* mat, int row, int col )((uchar*)Compile_Ycbcr->imageData+x*Compile_Ycbcr->widthStep)[y*3+i]=xx;}}}cvCvtColor(Compile_Ycbcr,in_color,CV_YCrCb2BGR);//CV_YCrCb2BGR=38cvNamedWindow("Y",CV_WINDOW_AUTOSIZE);cvShowImage("Y",Y);cvNamedWindow("dst1",CV_WINDOW_AUTOSIZE);cvShowImage("dst1",dst1);cvNamedWindow("Compile_Ycbcr",CV_WINDOW_AUTOSIZE);cvShowImage("Compile_Ycbcr",Compile_Ycbcr);cvWaitKey(0);cvDestroyWindow("Y");cvDestroyWindow("dst1");cvDestroyWindow("原-图ª?");cvDestroyWindow("Compile_Ycbcr");}我结合了前面的直方图均衡化的程序,加到了对比度增加的程序里,结果如图所示的效果,我总感觉这就是直方图均衡化,既增加了亮度又增加了对比度!!灰度载入的图像,以CV_LOAD_IMAGE_GRAYSCALE格式输入,就会直接显示的是灰色图像伪彩色处理后的图片彩虹的颜色:主要思路是把灰度图对应的0~255的数值分别转换成彩虹色:红橙黄绿青蓝,就根据这6种颜色的RGB值,来转换!!!将Canny边缘检测与创建滑动条函数相结合,能更好的检测到边缘,进过程序编写,得到如下两幅图的:要注意的是,滑动条显示的窗口名称与边缘检测输出图像显示的窗口名称是一样的!!!索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。