前言
图像的平滑处理,是计算机视觉中非常重要的操作,本文将展示一个可以对图像进行平滑处理的简单程序。而关于平滑处理深层次的知识,会在以后的文章中重点探讨。
代码示例
1 // 此头文件包含图像IO函数的声明 2 #include "highgui.h" 3 // 此头文件包含基本的图像处理函数和高级计算机视觉算法 4 #include "cv.h" 5 6 int main (void) { 7 8 // 将D盘目录下名为" 1.jpg "的图像加载至内存并获得一个指向该图像内存块的指针img 9 IplImage * img = cvLoadImage ("D:\\1.jpg"); 10 11 // 创建一个窗口显示平滑处理前的图像 12 cvNamedWindow ("平滑前", CV_WINDOW_AUTOSIZE); 13 14 // 将图像装载进窗口并显示此窗口 15 cvShowImage ("平滑前", img); 16 17 // 创建一个新的图像内存块,以存放平滑结果。 18 IplImage * out = cvCreateImage ( 19 cvGetSize (img), 20 img->depth, 21 img->nChannels 22 ); 23 24 // 平滑处理函数,具体参数暂不去理会。 25 cvSmooth ( 26 img, 27 out, 28 CV_GAUSSIAN, 29 3, 30 3 31 ); 32 33 // 创建一个窗口显示平滑处理前的图像 34 cvNamedWindow ("平滑前", CV_WINDOW_AUTOSIZE); 35 36 // 将图像装载进窗口并显示此窗口 37 cvShowImage ("平滑后", out); 38 39 // 该函数的参数为 0 时,程序将等待用户触发一个按键操作。 40 // 若参数为正整数,则程序将暂停该整数个毫秒单位直至用户有任何按键。 41 cvWaitKey (0); 42 43 // 释放图像内存块 44 cvReleaseImage (&img); 45 cvReleaseImage (&out); 46 47 // 关闭窗口同时释放窗口内存块 48 cvDestroyWindow ("平滑前"); 49 cvDestroyWindow ("平滑后"); 50 }
运行测试
1. 将如下测试图片另存到 D 盘,命名为 "1.jpg":
2. 运行结果:
仔细观察,发现右边的图像模糊了。
OpenCV 入门示例之四:一个简单的变换,布布扣,bubuko.com
原文:http://www.cnblogs.com/scut-fm/p/3731035.html