OpenCV- 图像文件读入和显示
2014-04-28 19:08
417 查看
C语言版本
/***********************************************************************
* OpenCV example
* By Shiqi Yu 2006
***********************************************************************/
#include "cv.h"
#include "highgui.h"
int main( int argc, char** argv )
{
IplImage* pImg; //声明IplImage指针
//载入图像
if( argc == 2 &&
(pImg = cvLoadImage( argv[1], 1)) != 0 )//[[此处的argc==2是否需要改成argc==1?我改了之后才能运行成功。求大牛解惑]] // wmzzzz : 在"属性"|"debug"|里的command arguments 里加入参数(一个路径:要打开的文件路径) 这时 argc==2 就合理了...可以试试多加几个
{
cvNamedWindow( "Image", 1 );//创建窗口
cvShowImage( "Image", pImg );//显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
return 0;
}
return -1;
}
[编辑]
函数说明
cvLoadImage( filename, -1 ); 默认读取图像的原通道数
cvLoadImage( filename, 0 );强制转化读取图像为灰度图
cvLoadImage( filename, 1 );读取彩色图
C++语言版本 based on OpenCV 2.1
/***********************************************************************
* OpenCV 2.1 example
* By Pebbler Chung 2010
***********************************************************************/
#include "cv.h"
#include "highgui.h"
using namespace cv; //下面的所有cv相关类型不用加上前缀了
int main(int argc, char* argv[])
{
Mat img = imread("lena.jpg"); //声明Mat变量并调入lena的照片
if(!img.data) //判断图片调入是否成功
return -1; //调入图片失败则退出
//创建窗口,并确定其为大小不可变类型窗口
namedWindow("loveLena", CV_WINDOW_AUTOSIZE);
//显示图片。如果你不介意窗口大小可变,可以直接注释掉上一句。因为imshow可以直接创建窗口
imshow("loveLena", img);
waitKey(); //等待按键
return 0;
}
C++语言版本 based on OpenCV 2.3.1
/***********************************************************************
* OpenCV 2.3.1 example
* By Quarryman 2012
***********************************************************************/
#include "stdafx.h"
#include <string>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
string imagename = "lena.jpg"; //此处需要填写绝对地址,我测试时使用相对地址出错。
//读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
return -1;
}
//创建窗口
namedWindow("image",1);
//显示图像
imshow("image", img);
//等待按键,按键盘任意键返回
waitKey();
return 0;
//错误指出: feihongmeilian
//经本人验证,string imagename = "lena.jpg"; 处是可以使用相对地址,本人使用环境为OpenCV 2.4.3
//图片为meinv.jpg置于代码文件所在文件夹的上一级文件夹中,string imagename = "..\\meinv.jpg" 图片可正常显示。
//需提醒注意的是 双引号“” 中出现的第一个 斜杠 \ 被视作转义字符
}
C++版本的好处
在于可以尽量避免使用指针这种危险的东西了。
另一个好处便在于,不用费心去release资源了,因为在其destructor里面,系统会自动帮你搞定。
http://wiki.opencv.org.cn/index.php/图像文件读入和显示
/***********************************************************************
* OpenCV example
* By Shiqi Yu 2006
***********************************************************************/
#include "cv.h"
#include "highgui.h"
int main( int argc, char** argv )
{
IplImage* pImg; //声明IplImage指针
//载入图像
if( argc == 2 &&
(pImg = cvLoadImage( argv[1], 1)) != 0 )//[[此处的argc==2是否需要改成argc==1?我改了之后才能运行成功。求大牛解惑]] // wmzzzz : 在"属性"|"debug"|里的command arguments 里加入参数(一个路径:要打开的文件路径) 这时 argc==2 就合理了...可以试试多加几个
{
cvNamedWindow( "Image", 1 );//创建窗口
cvShowImage( "Image", pImg );//显示图像
cvWaitKey(0); //等待按键
cvDestroyWindow( "Image" );//销毁窗口
cvReleaseImage( &pImg ); //释放图像
return 0;
}
return -1;
}
[编辑]
函数说明
cvLoadImage( filename, -1 ); 默认读取图像的原通道数
cvLoadImage( filename, 0 );强制转化读取图像为灰度图
cvLoadImage( filename, 1 );读取彩色图
C++语言版本 based on OpenCV 2.1
/***********************************************************************
* OpenCV 2.1 example
* By Pebbler Chung 2010
***********************************************************************/
#include "cv.h"
#include "highgui.h"
using namespace cv; //下面的所有cv相关类型不用加上前缀了
int main(int argc, char* argv[])
{
Mat img = imread("lena.jpg"); //声明Mat变量并调入lena的照片
if(!img.data) //判断图片调入是否成功
return -1; //调入图片失败则退出
//创建窗口,并确定其为大小不可变类型窗口
namedWindow("loveLena", CV_WINDOW_AUTOSIZE);
//显示图片。如果你不介意窗口大小可变,可以直接注释掉上一句。因为imshow可以直接创建窗口
imshow("loveLena", img);
waitKey(); //等待按键
return 0;
}
C++语言版本 based on OpenCV 2.3.1
/***********************************************************************
* OpenCV 2.3.1 example
* By Quarryman 2012
***********************************************************************/
#include "stdafx.h"
#include <string>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
string imagename = "lena.jpg"; //此处需要填写绝对地址,我测试时使用相对地址出错。
//读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
return -1;
}
//创建窗口
namedWindow("image",1);
//显示图像
imshow("image", img);
//等待按键,按键盘任意键返回
waitKey();
return 0;
//错误指出: feihongmeilian
//经本人验证,string imagename = "lena.jpg"; 处是可以使用相对地址,本人使用环境为OpenCV 2.4.3
//图片为meinv.jpg置于代码文件所在文件夹的上一级文件夹中,string imagename = "..\\meinv.jpg" 图片可正常显示。
//需提醒注意的是 双引号“” 中出现的第一个 斜杠 \ 被视作转义字符
}
C++版本的好处
在于可以尽量避免使用指针这种危险的东西了。
另一个好处便在于,不用费心去release资源了,因为在其destructor里面,系统会自动帮你搞定。
http://wiki.opencv.org.cn/index.php/图像文件读入和显示
相关文章推荐
- Opencv学习手册(一)--- 图像文件读入和显示
- 利用opencv进行图像文件读入和显示
- <opencv学习 1>图像文件的读入与显示
- 初学openCV 之从文件中读入一幅图像,将之反色并显示
- OpenCV 2.3.1图像文件的读入和显示
- CentOS+OpenCV图像的读入、显示
- OpenCV显示摄像头图像保存成bmp文件
- 该程序从文件中读入一幅图像,将之反色,然后显示出来
- 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中
- 【OpenCV学习笔记】【函数学习】十一(读入图像﹑显示图像和保存图像)
- Matlab中用一个For循环连续读入并显示几个图像文件 [转]
- OpenCV读入的图像如何显示在窗体上
- OpenCV与Python之图像的读入与显示以及利用Numpy的图像转换
- openCV 利用Mat 类读入并显示图像
- OpenCV与Python之图像的读入与显示以及利用Numpy的图像转换
- 【Ubuntu+OpenCV】ubuntu/linux环境下,运用opencv实现图像的读入、显示--学习笔记【1】
- opencv & qt study-(4)- 图像的载入,显示,及写入到图像文件
- 读入图像文件并显示【C#图像处理学习笔记】
- 利用OpenCV读入,显示并保存图像
- opencv-python(1):读入、显示、保存图像