zoukankan      html  css  js  c++  java
  • 小试牛刀——如何使用OPENCV获取图像

    现在正在学习 OPENCV,与大家分享一下使用OPENCV获取图像的心得。

    首先给出源代码:

    #include<highgui.h>
    int main(int argc,char**argv)
    {
     IplImage* img=cvLoadImage("argv[1]");
     cvNamedWindow("Example1");
     cvShowImage("Example1",img);
        cvWaitKey(0);
     cvReleaseImage(&img);
     cvDestroyWindow("Example1");
    }

    下面在一一详细解释:

    IplImage* img=cvLoadImage("argv[1]");

    该行的意思是将图像文件加载至内存(在实际代码中我们应该检查命令行参数argv[1]所指示的文件是否存在,若不存在应向用户发送一条错误信息)。cvLoadImage()函数是一个高层调用接口,它通过文件名确定被加载的格式;并且该函数将自动分配图像数据结构所需的内存。该函数执行完后返回一个指针,此指针指向一块为描叙该图像文件数据结构(IplImage)而分配的内存块。

    cvNamedWindow("Example1",CV_WINDOW_AUTOSIZE);

    cvNamedWindow()函数也是一个高层调用接口,该函数又highgui库提供,cvNamedWindow()函数用于在屏幕上创建一个窗口,将被显示的图像包含于该窗口中,“Example1”为该窗口的标题,当然也可以使用其他名字,cvNamedWindow()函数的第二个参数定义了窗口的属性,该窗口可被设置为0(默认)或CV_WINDOW_AUTOSIZE,当为0时,窗口的大小不会不会因图像的大小而改变,图像只能在窗口中根据窗口的大小进行拉伸或缩放;而设置为CV_WINDOW_AUTOSIZE时,窗口这会根据图像的实际大小而相应的拉伸或缩放,以容纳图像。

    cvShowImage("Example1",img);

    该行的功能是显示图像,只要该行IplImage* img=cvLoadImage("argv[1]");在argv[1]中找到与img指针相应的图像,就可使用函数cvShowImage()显示图像,该函数第一个参数表示图像应该在标题为“Example1”的窗口显示,第二个参数表示应该显示那个指针指向的图像。

    cvWaitKey(0);

    cvWaitKey()函数的功能是使程序暂停,将该参数设置为0或负数是,程序将一直等待用户触发键操作。但如果将该参数设置为正数时,则程序将暂停一段时间,时间长为该整数的毫秒单位,例如设置为33,则表示等待时间为33毫秒(一秒显示三帧)。

    cvReleaseImage(&img);

    一旦用完加载到内存的图像文件,我们就可以释放为该图像文件所分配的内存,cvReleaseImage()函数执行完后,img指针被置为NULL。

    cvDestroyWindow("Example1");

    最后,可以销毁显示图像的窗口。事实上,当应用程序的窗口被关闭时,该应用程序窗口所占用的一切资源都将会被操作系统释放,所以地与一些简单的程序,不必调用cvReleaseImage()和cvDestroyWindow()这两个函数,但是,养成习惯每次调用函数显示释放资源总是好的。

    小试牛刀:

    #include"highgui.h"
    int main(int argc,char*argv[])
    {
    IplImage* src =cvLoadImage("E:\beijing.jpg");
    cvNamedWindow("win");
    cvShowImage("win",src);
    cvWaitKey(0);
    cvReleaseImage(&src);
    cvDestroyWindow("win");
    return 0;
    }

    该函数的功能是显示一张图片(磁盘上的图片),图片就省略了,网速不给力。

    刚开始学习OPENCV,可能有一些不到之处,望指正。

  • 相关阅读:
    leetcode33. Search in Rotated Sorted Array
    pycharm 设置sublime text3 monokai主题
    django class Meta
    leetcode30, Substring With Concatenation Of All Words
    Sublime text3修改tab键为缩进为四个空格,
    sublime text3 python打开图像的问题
    安装上imesupport输入法依然不跟随的解决办法,
    sublime text3 的插件冲突弃用问题,
    sublime text3 BracketHighlighter括号匹配的设置
    windows 下wget的使用
  • 原文地址:https://www.cnblogs.com/MichaelLi1994/p/3519512.html
Copyright © 2011-2022 走看看