opencv实现高斯模糊

来源:互联网 发布:小米3如何使用4g网络 编辑:程序博客网 时间:2024/06/05 11:38
[cpp] view plaincopy
  1. #include "cv.h"  
  2. #include <cxcore.h>  
  3. #include <highgui.h>  
  4.   
  5.   
  6. int main()  
  7. {  
  8.         //将图像文件加载至内存 分配图像数据结构所需要的内控 返回一个指向数据结构IplImage的内存块:  
  9.         IplImage *img = cvLoadImage("C:\\Users\\freeboy\\Desktop\\学习资料\\例图\\lena.jpg");  
  10.         //需要把这个图片放在这个project下面,比如我的:&user name\Documents\Visual Studio 2010\Projects\opencvhello\opencvhello文件夹里面  
  11.         //定义两个窗口,自由大小。本函数由HighGUI库提供。第二个参数如果为0,则窗口大小不会因图像的大小而改变。  
  12.         cvNamedWindow("Image-in",CV_WINDOW_AUTOSIZE);  
  13.         cvNamedWindow("Image-out",CV_WINDOW_AUTOSIZE);  
  14.         //先显示原jpg图  
  15.         cvShowImage("Image-in",img);  
  16.        //分配空间存储处理后的图像  
  17.         IplImage *out=cvCreateImage(  
  18.             cvGetSize(img),//当前图像大小  
  19.             IPL_DEPTH_8U,//各通道每个像素点的类型  
  20.             3//通道总数  
  21.             );  
  22. //进行高斯处理,处理的是指针img指向的内存,将处理后的数据交给out指针指向的内存,对每个像素周围3x3的区域进行高斯平滑处理(其实输入输出图像可以是相同的)  
  23.         cvSmooth(img,out,CV_GAUSSIAN,3,3);  
  24. //显示处理后的图像  
  25.         cvShowImage("Image-out",out);  
  26.   
  27.       //清除垃圾  
  28.         cvReleaseImage(&out);  
  29.         cvReleaseImage(&img);  
  30.   
  31.         //cvWaitKey的参数如果是正值,则程序会等待数值个毫秒,然后继续运行;如果是负值或者0,就会等待用户触发按键操作,然后继续程序。  
  32.         cvWaitKey();  
  33.   
  34.        //销毁窗口,养成好习惯  
  35.         cvDestroyWindow("Image-in");  
  36.         cvDestroyWindow("Image-out");  
  37.   
  38.         return 0;  
  39.   
  40. }  
0 0
原创粉丝点击