首页 > 代码库 > OpenCV基础篇之读取显示图片
OpenCV基础篇之读取显示图片
程序及分析
/* * FileName : read.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 13 May 2014 07:34:25 PM CST * Brief : * * Copyright (C) MICL,USTB */ #include <cv.h> #include <highgui.h> using namespace cv; using namespace std; int main(int argc, char **argv) { Mat img; img = imread(argv[1], 1); if (argc != 2 || !img.data) { cout<<"No image data.\n"<<endl; return -1; } namedWindow("Display Image", CV_WINDOW_AUTOSIZE); imshow("Display Image", img); waitKey(0); return 0; }
包括和,cv.h中包括了OpenCV的核心功能,包括Mat等数据结构,highgui.h主要包括用于图片显示的接口。
Mat是OpenCV中特有的矩阵类,Mat.data是数据指针,通过推断数据指针是否为NULL能够确定是否读入图片数据。
namedWindow有两个參数,其函数原型例如以下:
CV_EXPORTS_W void namedWindow(const String& winname, int flags=WINDOW_AUTOSIZE);
第一个參数winname是窗体名,是窗体对象的唯一标识。就和人的名字一样,因此,不能同一时候有两个同样名字的窗体!flags设置窗体属性,缺省參数值为WINDOW_AUTOSIZE=CV_WINDOW_AUTOSIZE=1。
和matlab中的一样。有木有。第一个參数表示我要在哪个窗体显示,第二參数表示我要显示那幅图像,用脚趾头想一想。是不是有这两个參数就能知道在哪显示什么了?
另一个
waitKey(int delay=0)
表示图片显示窗体保留时间,单位为ms。当delay=0时,按下键盘上随意按键才会关闭图像显示的窗体用于编译上述程序的Makefile例如以下:
TARG=read SRC=http://www.mamicode.com/read.cpp>
我将OpenCV安装到默认文件夹/usr/local下,因此在使用g++编译时要包括链接库(
-L/usr/local/lib/)
和头文件(-I/usr/local/include/opencv/
)注:在OpenCV基础篇中都使用该格式的Makefile文件,因此后面的例程都能够拷贝后直接使用,仅仅须要改动TARG和SRC參数就可以!
效果
OpenCV基础篇之读取显示图片
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。