【练习5.2】使用中心为255的图片对比高斯滤波器的平滑效果

《学习OpenCV》中文版第5章第2题

提纲
题目要求
程序代码
结果图片

 

 

 

 

题目要求:

建立一个100×100的单通道图像,将图像全部像素置零,然后设置中心像素值等于255.

c、对原图用5×5过滤器平滑两次,与用9×9过滤器的结果对比,看是否相似,为什么

 

程序代码:

 1 // OpenCVExerciseTesting.cpp : 定义控制台应用程序的入口点。

 2 //

 3 //D:\\Work\\Work_Programming\\Source\\Image\\lena.jpg

 4 

 5 

 6 #include "stdafx.h"

 7 #include <cv.h>

 8 #include <highgui.h>

 9 #include <iostream>

10 using namespace cv;

11 using namespace std;

12 //函数声明-->--->-->--->-->--->-->--->//

13 

14 

15 

16 //<--<--<--<--<--<--<--<--<--函数声明//

17 

18 int _tmain(int argc, _TCHAR* argv[])

19 {

20     IplImage * img = cvCreateImage(cvSize(100, 100), IPL_DEPTH_8U, 1);

21     assert(img);

22     cvZero(img);

23     cvSetReal2D(img, 49, 49, 255);

24 

25     cvNamedWindow("ExerciseWindow", 0);

26     cvNamedWindow("高斯模糊5×5", 0);

27     cvNamedWindow("高斯模糊9×9", 0);

28     cvNamedWindow("高斯模糊5×5两次", 0);

29 

30     cvShowImage("ExerciseWindow", img);

31 

32 

33     //---------------------------a:开始--------------------------------//

34 

35     IplImage * image_Gauss = cvCloneImage(img);

36     cvZero(image_Gauss);

37 

38     cvSmooth(img, image_Gauss, CV_GAUSSIAN, 5, 5);

39 

40     cvShowImage("高斯模糊5×5", image_Gauss);

41 

42     //---------------------------a:结束--------------------------------//    

43 

44 

45     //---------------------------b:开始--------------------------------//

46 

47     IplImage * image_Gauss_9 = cvCloneImage(img);

48     cvZero(image_Gauss_9);

49 

50     cvSmooth(img, image_Gauss_9, CV_GAUSSIAN, 9, 9);

51 

52     cvShowImage("高斯模糊9×9", image_Gauss_9);

53 

54     //---------------------------b:结束--------------------------------//    

55 

56     //---------------------------c:开始--------------------------------//

57 

58     //5×5针对原图两次

59     IplImage * image_Gauss_5_2 = cvCloneImage(img);

60     cvZero(image_Gauss_5_2);

61 

62     cvSmooth(img, image_Gauss_5_2, CV_GAUSSIAN, 5, 5);

63     cvSmooth(image_Gauss_5_2, image_Gauss_5_2, CV_GAUSSIAN, 5, 5);

64 

65     cvShowImage("高斯模糊5×5两次", image_Gauss_5_2);

66 

67 

68     //---------------------------c:结束--------------------------------//    

69 

70 

71     cvWaitKey(0);

72 

73     cvReleaseImage(&img);

74     cvReleaseImage(&image_Gauss);

75     cvReleaseImage(&image_Gauss_9);

76     cvReleaseImage(&image_Gauss_5_2);

77 

78     cvDestroyWindow("ExerciseWindow");

79     cvDestroyWindow("高斯模糊5×5");

80     cvDestroyWindow("高斯模糊9×9");

81     cvDestroyWindow("高斯模糊5×5两次");

82 

83     return 0;

84 }

 

 

局部放大截图

【练习5.2】使用中心为255的图片对比高斯滤波器的平滑效果 【练习5.2】使用中心为255的图片对比高斯滤波器的平滑效果
【练习5.2】使用中心为255的图片对比高斯滤波器的平滑效果 【练习5.2】使用中心为255的图片对比高斯滤波器的平滑效果

 

用5×5过滤器平滑两次,与用9×9过滤器平滑,平滑影响的像素数及每个像素的像素值都接近。

你可能感兴趣的:(图片)