OpenCV显示图像的方法——否则程序运行好了都不知道图像怎么读取的

来源:互联网 发布:淘宝拒绝退款怎么办 编辑:程序博客网 时间:2024/04/30 14:05

方法一:

利用OpenCV教程——基础篇中的程序,运行环境:VC++6.0。

/*程序名:hello.c  功能:从磁盘中读入图像文件,并将图像显示在屏幕上*/#include "cv.h"#include "highgui.h"int main( int argc, char** argv ){    IplImage* pImg; //声明IplImage指针    //载入图像    if( argc == 2 && (pImg = cvLoadImage( argv[1], 1)) != 0 )    {        cvNamedWindow( "Image", 1 ); //创建窗口        cvShowImage( "Image", pImg ); //显示图像        cvWaitKey(0); //等待按键        cvDestroyWindow( "Image" );//销毁窗口        cvReleaseImage( &pImg ); //释放图像        return 0;    }    return -1;}

首先,以上程序在VC6.0中编译连接后在工程的Debug中会生成.exe文件。

说明如下:

int main( int argc, char** argv )

main中参数的含义见点击打开链接


if( argc == 2 && (pImg = cvLoadImage( argv[1], 1)) != 0 )

其中的cvLoadImage()里面的参数使用argv[1],这种情况下生成的exe文件需要在window的cmd界面下运行。运行过程中需要使用DOS命令行命令,可以自己网上查找。


DOS命令如下:

tests为所建立的工程所在文件夹,所用图片需要放在Debug目录里面。


运行结果如下:




昨天只研究处理第一种方法,方法一每次都要进入DOS界面输入命令才能打开图像,这样的好处是可以练习一下window下的命令行吧(废话一下)。最大的不好就是当程序要对一副图像进行多种处理时,每次都要输入好多命令非常的繁琐,所以就想到利用matlab中的函数imread一样,直接把图像的名字作为参数传入cvLoadImage(),这样图像就可以直接读取,不需要繁琐的DOS界面操作了。

详细方法如下:

方法二:

// 载入图像  

    img=cvLoadImage("kobe.jpg",-1);//“-1”表示默认读取图像的原通道数

其他部分的程序如方法一,但是图像能够自动读入和显示出来的重点是把图像文件放在所建立的工程所在的目录里面,而不是方法一中的放在工程的Debug文件夹内!!!

结果图像:



PS:img=cvLoadImage("D:\tempf2\testfuction\kobe.jpg",-1);当把图像的路径也放进去,看似很完整,但是目前程序报错:不认识字符'k',希望后续可以揭晓答案……