zoukankan      html  css  js  c++  java
  • OpenCV 入门示例之五:一个复杂点的变换

    前言

      前文介绍了一个简单的变换。需要注意的是,很多时候,输出和输入图像的格式是不同的( 大小,深度,通道 )。在本文将展示的程序中,对图像进行了缩放( 使用cvPyrDown 函数 ),这种情况下需要先定制好输出图像的格式,然后再将其与输入图像一起传递进缩放函数

    代码示例

     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         cvSize (img->width/2, img->height/2),    // 大小为原图的一半
    20         img->depth,    // 深度相同
    21         img->nChannels    // 通道数相同
    22     );
    23 
    24     // 该函数实现对图像的缩放功能
    25     cvPyrDown (
    26         img,    // 原图像 
    27         out        // 缩放后的图像( 一定要先创建好了才进入函数 )
    28     );
    29 
    30     // 创建一个窗口显示缩放后的图像
    31     cvNamedWindow ("缩放后", CV_WINDOW_AUTOSIZE);
    32 
    33     // 将图像装载进窗口并显示此窗口
    34     cvShowImage ("缩放后", out);
    35 
    36     // 该函数的参数为 0 时,程序将等待用户触发一个按键操作。
    37     // 若参数为正整数,则程序将暂停该整数个毫秒单位直至用户有任何按键。
    38     cvWaitKey (0);
    39 
    40     // 释放图像内存块
    41     cvReleaseImage (&img);
    42     cvReleaseImage (&out);
    43 
    44     // 关闭窗口同时释放窗口内存块
    45     cvDestroyWindow ("缩放前");
    46     cvDestroyWindow ("缩放后");
    47 
    48     return 0;
    49 }

    运行测试

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

      

      2. 运行结果:

      

      

  • 相关阅读:
    OJ推荐【转】
    Eclipse插件推荐:UCDetector: Unnecessary Code Detector
    Android工程目录及其作用简介
    Source not found The JAR file …has no source attachment.
    Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
    Microsoft Visual C++ Runtime error解决方法
    Windows程序设计之Hello,Windows 98程序的声音调试记录
    没有谁是躺着成为谁的【转载】
    下一个7年,我是谁?【转载】
    UEditor编辑器使用教程 百度经验
  • 原文地址:https://www.cnblogs.com/scut-fm/p/3733560.html
Copyright © 2011-2022 走看看