OpenCV中图像的读取与显示

 

在OpenCV中,有一些函数可用于图像读取和保存,这些函数都在命名空间cv中,所以使用时有两种方式,一种是在函数头部声明using namespace cv;第二种方式就是使用cv作为函数的限定。

从文件中读入一幅图像可以使用imread函数来读取图像,

Mat img=imread(filename);

该语句将filename所指定路径的指定文件读取到img数组中,该函数读取的是默认的三通道图像,读取的顺序默认情况下是BGR顺序,如果想得到单通道(灰度级的)图像,则可以使用下面的方式:

Mat img=imread(filename,0);

当然读取图像还有其他的方法,如下面所示,在OpenCV中,IplImage结构体是一个重要的结构体,

可以定义一个指向IplImage的结构体指针,结合函数cvLoadImage来读取图像,如下所示:

IplImage *scr;
 scr=cvLoadImage("H:\\VS2010Ultimtrial\\file\\testOpenCV\\test.jpg",1);

当写成

IplImage *scr;
 scr=cvLoadImage("H:\\VS2010Ultimtrial\\file\\testOpenCV\\test.jpg",0);

表示读取的是单通道(灰度级)的图像

当读取完图像数据后可分别使用imshow(filename,img)和cvShowImage(title,scr)来显示图像。

参考程序如下:

const char* imagename = "H:\\我的文档\\我的图片\\合肥植物园之旅\\DSCN0175.jpg";
    cv::Mat img = cv::imread(imagename);
    if(img.empty())return -1; //是否加载成功
    if(!img.data)return -1;
    cv::namedWindow("image", CV_WINDOW_NORMAL);
    cv::imshow("image", img);
    cv::waitKey();

或者:

IplImage *scr;
 scr=cvLoadImage("H:\\VS2010Ultimtrial\\file\\testOpenCV\\test.jpg",1);
  cvNamedWindow("美女",CV_WINDOW_AUTOSIZE);
 cvShowImage("test.jpg",scr);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值