红联Linux门户
Linux帮助

openCV打开一张图片

发布时间:2016-06-10 10:54:01来源:linux网站作者:zhanghongjay

在安装完opencv后我们开始学习其强大的功能,如同hello world一样打开一张图片肯定是必须实现的功能。

下面我们开始讲解如何用opencv编写一个打开一张图片的程序。


一、main函数的格式

在c语言中我们常用void main() 来写主函数,但是在C++中这是不合法的,虽然有些编译器允许这样做。

在linux/unix中标准的main()函数的写法如下:

int main(int argc , char* argv[ ] ,char**env )

其中第一个参数argc未整型,用来统计程序运行时发给main函数的命令行参数的个数;第二个char*类型的argv[]参数为字符串数组,用来存放指向字符串参数的指针数组;

第三个参数env为char**l类型的字符串数组,经常用到的就前面两个参数。


二、opencv的命名空间

opencv中的c++类函数都是定义在命名空间cv之内。要访问必须先声明命名空间。

有两种声明方式;

第一,在代码开头位置声明:usingnamespace cv;

第二,在使用opencv的每一个类和函数时在前面加上cv::


三、图像载入:imread()函数

函数原型:

Mat imread(const string& filename , intflgs=1);

第一个参数未需要载入的图片的路径名;第二个参数默认未1,表示载入三通道的彩色图片。


四、图像显示函数:imshow()

imshow()函数用于在指定窗口中显示一张图片

函数原型为:void imshow(const string& winname , InputArray mat);

第一个参数需要显示的窗口表识名称

第二个填入需要显示的图像

源码如下:

openimg.cpp

#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc , char* argv[])
{
//read one image
Mat img=imread("lena.jpg");
if(img.empty())
{
fprintf(stderr,"Cant not load image \n");
return -1;
}

//show image in windows
imshow("load image",img);

//close windows after 100000ms
waitKey(100000);

return 0;
}

编译所需的makefile文件

makefile

CXX ?= g++

CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv)
LDFLAGS += $(shell pkg-config --libs --static opencv)

all: openimg

openimg: openimg.o; $(CXX) $< -o $@ $(LDFLAGS)

%.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS)

clean: ; rm -f openimg.o openimg

openCV打开一张图片


本文永久更新地址://m.ajphoenix.com/linux/21398.html