zoukankan      html  css  js  c++  java
  • OpenCV 入门示例之四:一个简单的变换

    前言

      图像的平滑处理,是计算机视觉中非常重要的操作,本文将展示一个可以对图像进行平滑处理的简单程序。而关于平滑处理深层次的知识,会在以后的文章中重点探讨。

    代码示例

     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 
    51     return 0;
    52 }

    运行测试

      1. 将如下测试图片另存到 D 盘,命名为 "1.jpg":

      

      2. 运行结果:

      

      仔细观察,发现右边的图像模糊了。

  • 相关阅读:
    网上订火车票,用chrome和firefox才是王道
    SYNOPSYS VCS常用命令使用详解
    archlinux failed retrieving file 'xxx'解决办法
    JQuery实现点击TreeView文本展开/折叠子节点
    解决VS2010下HTML5的无法智能提示的问题
    Win7 计算机右键“管理”失效
    virtualbox下安装archlinux
    Linux下修改(NTFS)磁盘(卷标)显示名称
    Win7下使用VMWare安装Archlinux
    1.XMLHttpRequest:
  • 原文地址:https://www.cnblogs.com/scut-fm/p/3731035.html
Copyright © 2011-2022 走看看