zoukankan      html  css  js  c++  java
  • 【练习5.3】高斯平滑_调整调整4个参数的处理效果对比

     学习OpenCV》中文版第5章第3题

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

      

    题目要求:

    a、设置param1=param2=9,依次将param3设为1和6对比

    b、设置param1=param2=0,依次将param3设为1和6对比

    c、设置param1=param2=0,但这时令param3=1,param4=9,处理并显示结果

    d、令param3=9,param4=1,重复操作c

    e、将图像使用c平滑一次,再使用d平滑一次,显示结果

    f、对图像依次进行两次平滑操作,第一次参数为param1=param2=0,param3=param4=9,第二次参数为param1=param2=0,param3=param4=0。将结果与e操作的结果进行对比。他们相同吗?为什么?

    程序代码:

      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     ////const char * fileName = "D:\Work\Work_Programming\Source\Image\Photoshop\样图.jpg";    
     21 
     22     const char * fileName = "D:\Work\Work_Programming\Source\Image\纹理\纹理_灰度.jpg";
     23     IplImage * img = cvLoadImage(fileName, CV_LOAD_IMAGE_UNCHANGED);
     24     assert(img);
     25 
     26 
     27     //IplImage * img = cvCreateImage(cvSize(100, 100), IPL_DEPTH_8U, 1);
     28     //assert(img); 
     29     //cvZero(img);
     30     //cvSetReal2D(img, 49, 49, 255);    
     31      
     32     cvNamedWindow("ExerciseWindow", 0);    
     33     cvNamedWindow("高斯模糊_a_1", 0);
     34     cvNamedWindow("高斯模糊_a_6", 0);
     35     cvNamedWindow("高斯模糊_b_1", 0);
     36     cvNamedWindow("高斯模糊_b_6", 0);
     37     cvNamedWindow("高斯模糊_c", 0);
     38     cvNamedWindow("高斯模糊_d", 0);
     39     cvNamedWindow("高斯模糊_e", 0);
     40     cvNamedWindow("高斯模糊_f", 0);
     41 
     42     /*char * imageName = "E:\Testing\Image\ExerciseWindow.jpg";
     43     cvSaveImage(imageName, img);*/
     44     cvShowImage("ExerciseWindow", img);
     45     
     46      
     47     //---------------------------a:开始--------------------------------//
     48 
     49     IplImage * image_Gauss_a = cvCloneImage(img);
     50     cvZero(image_Gauss_a);
     51 
     52     cvSmooth(img, image_Gauss_a, CV_GAUSSIAN, 9, 9, 1); 
     53     cvShowImage("高斯模糊_a_1", image_Gauss_a);
     54 
     55     cvZero(image_Gauss_a);
     56     cvSmooth(img, image_Gauss_a, CV_GAUSSIAN, 9, 9, 6);
     57     cvShowImage("高斯模糊_a_6", image_Gauss_a);
     58 
     59 
     60     //---------------------------a:结束--------------------------------//    
     61 
     62 
     63     //---------------------------b:开始--------------------------------//
     64 
     65     IplImage * image_Gauss_b = cvCloneImage(img);
     66     cvZero(image_Gauss_b);
     67 
     68     cvSmooth(img, image_Gauss_b, CV_GAUSSIAN, 0, 0, 1);
     69     cvShowImage("高斯模糊_b_1", image_Gauss_b);
     70 
     71     cvZero(image_Gauss_b);
     72     cvSmooth(img, image_Gauss_b, CV_GAUSSIAN, 0, 0, 6);
     73     cvShowImage("高斯模糊_b_6", image_Gauss_b);
     74 
     75     //---------------------------b:结束--------------------------------//    
     76 
     77     //---------------------------c:开始--------------------------------//
     78 
     79     IplImage * image_Gauss_c = cvCloneImage(img);
     80     cvZero(image_Gauss_c);
     81 
     82     cvSmooth(img, image_Gauss_c, CV_GAUSSIAN, 0, 0, 1,9);
     83      
     84     cvShowImage("高斯模糊_c", image_Gauss_c);
     85 
     86 
     87     //---------------------------c:结束--------------------------------//    
     88 
     89     //---------------------------d:开始--------------------------------//
     90 
     91     IplImage * image_Gauss_d = cvCloneImage(img);
     92     cvZero(image_Gauss_d);
     93 
     94     cvSmooth(img, image_Gauss_d, CV_GAUSSIAN, 0, 0, 9, 1);
     95 
     96     cvShowImage("高斯模糊_d", image_Gauss_d);
     97 
     98 
     99     //---------------------------d:结束--------------------------------//    
    100 
    101     //---------------------------e:开始--------------------------------//
    102 
    103     IplImage * image_Gauss_e = cvCloneImage(img);
    104     cvZero(image_Gauss_e);
    105 
    106     cvSmooth(img, image_Gauss_e, CV_GAUSSIAN, 0, 0, 1, 9);
    107     cvSmooth(image_Gauss_e, image_Gauss_e, CV_GAUSSIAN, 0, 0, 9, 1);
    108 
    109     cvShowImage("高斯模糊_e", image_Gauss_e);
    110 
    111 
    112     //---------------------------e:结束--------------------------------//    
    113 
    114     //---------------------------f:开始--------------------------------//
    115 
    116     IplImage * image_Gauss_f = cvCloneImage(img);
    117     cvZero(image_Gauss_f);
    118 
    119     cvSmooth(img, image_Gauss_f, CV_GAUSSIAN, 0, 0, 9, 9);
    120     //param3和4不能设置为0,,报错
    121     cvSmooth(image_Gauss_f, image_Gauss_f, CV_GAUSSIAN, 0, 0, 1, 1);
    122 
    123     cvShowImage("高斯模糊_f", image_Gauss_f);
    124 
    125 
    126     //---------------------------f:结束--------------------------------//    
    127 
    128     cvWaitKey(0);
    129 
    130     cvReleaseImage(&img);
    131     cvReleaseImage(&image_Gauss_a);
    132     cvReleaseImage(&image_Gauss_b);
    133     cvReleaseImage(&image_Gauss_c);
    134     cvReleaseImage(&image_Gauss_d);
    135     cvReleaseImage(&image_Gauss_e);
    136     cvReleaseImage(&image_Gauss_f);
    137 
    138     cvDestroyWindow("ExerciseWindow");     
    139     cvDestroyWindow("高斯模糊_a_1");
    140     cvDestroyWindow("高斯模糊_a_6");
    141     cvDestroyWindow("高斯模糊_b_1");
    142     cvDestroyWindow("高斯模糊_b_6");
    143     cvDestroyWindow("高斯模糊_c");
    144     cvDestroyWindow("高斯模糊_d");
    145     cvDestroyWindow("高斯模糊_e");
    146     cvDestroyWindow("高斯模糊_f");
    147 
    148 
    149     return 0;
    150 }
    151  

    结果图片:

  • 相关阅读:
    Python sys.argv用法详解及应用
    Python map() 函数
    Python中enumerate用法详解
    闭包,作用域链,垃圾回收,内存泄露
    jQuery 常用代码集锦
    关于作用域和作用域链最完整的简述
    git 合并commit
    apollo-client
    关于对称加密和解密
    接口校验机制
  • 原文地址:https://www.cnblogs.com/tingshuixuan2012/p/4433535.html
Copyright © 2011-2022 走看看