openCV1.0 cvLoadImage显示图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openCV1.0 cvLoadImage显示图像相关的知识,希望对你有一定的参考价值。

先贴代码:

#include "highgui.h"

int main(int argc, char **argv)
{
  IplImage* img;

  if (argc == 2 && (img = cvLoadImage(argv[1], 1)) != 0)
  {
    cvNamedWindow("Image", 1);
    cvShowImage("Image", img);
    cvWaitKey(0);

    cvDestroyWindow("Image");
    cvReleaseImage(&img);
    return 0;
  }
  return -1;
}

当以上代码编译后,我们就可以在命令行模式下执行他,效果如下:

技术分享

cvLoadImage(argv[1], 1)是将图像文件记载进内存。cvLoadImage()函数是一个高层调用接口,其源码在.../OpenCV/otherlibs/highgui/loadsave.cpp里,它通过文件名确定被加载文件的格式;而且该函数将自动分配图像数据结构所需要的内存。cvLoadImage()函数可支持绝大多数格式类型的图像文件,包括BMP、DIB、JPEG、JPE、PNG、PBM、PGM、PPM、SR、RAS和TIFF。该函数执行结束后返回一个指向图像数据结构(IplImage)的指针,该指针指向一块为描述该图像文件而分配的内存块。

cvNamedWindow()函数也是一个高层调用接口,其作用是在屏幕上创建一个窗口,将被显示的图像包含于该窗口中。函数的第一个参数指定了该窗口标题,第二个参数定义了窗口的属性,该参数可被设置为0或CV_WINDOW_AUTOSIZE,设置为0表示窗口的大小不会因为图像的大小而改变,图像只能在窗口中根据窗口的大小拉伸或缩放;而设置为CV_WINDOW_AUTOSIZE时,窗口则会根据实际大小而自动进行拉伸或缩放。

cvShowImage("Example1", img)函数通过设置其第一个参数确定在哪个已存在的窗口中显示图像,第二个参数确定将哪个图像显示在窗口中。

cvWaitKey(0)的功能是使程序暂停,等待用户触发一个按键操作。如果参数设置为正数则程序将暂停该整数值个毫秒单位后继续执行,如果参数为0或负数则一直等待用户输入。

cvDestroyWindow("Image");销毁显示图像文件的窗口,传入窗口标题。

cvRealseImage(&img); 释放刚才为图像文件所分配的内存

 












以上是关于openCV1.0 cvLoadImage显示图像的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV中IplImage和Mat间的相互转换

谁会用opencv1.0获取USB口摄像头的一帧的图像(最好有循环能获取不同时间的帧)并显示出来的vc++6.0程序

手动封装OpenCV1.0的IplImage读取保存功能遇到的小问题

处理实时数据,绕过 CvloadImage

分数好说,在vs2005里用opencv1.0做一个打开图片并可以显示鼠标所指图片像素点RGB值的程序,在线等,附图

HighGUI 图形用户界面