opencv篇之一 图像的读取和显示

来源:互联网 发布:xmind 8 mac 注册码 编辑:程序博客网 时间:2024/06/06 17:21

欢迎关注,定期更新

从这一篇开始,我们来简单的了解opencv的一些概念和应用,关于opencv的起源、发展之类的不再赘述。首先来说一下环境配置,这里本人是vs2010+opencv3.1,opencv3.1的源码可以在官网上下载,下载下来后进行编译,这里本人编译成了64位的。关于具体的配置步骤和编译步骤,大家可以参考网上的一大堆资料,这里不再赘述。下边直接来第一个例子,图像的读取和显示,代码给出两种版本,一种是旧版本的数据结构和函数,一种是新版本

int _tmain(int argc, _TCHAR* argv[]){//new version/*Mat aa=imread("aa.jpg");namedWindow("test image aa");imshow("test image aa",aa);waitKey();*///old versionIplImage *image=cvLoadImage("aa.jpg");cvNamedWindow("test image aa");cvShowImage("test image aa",image);cvWaitKey(0);cvReleaseImage(&image);cvDestroyWindow("test image aa");return 0;}
简单解释一下,Mat是新版本表示图像的结构矩阵,旧版本是IplImage* 这个指针,前边的是新版本的函数,后边是旧版本的函数,当然关于Mat和IplImage* 这两种结构,大家感兴趣的可以去看一下源码,不理解也没关系,我们的目的只是简单的应用。namedWindow函数和cvNamedWindow函数都是创建一个窗口,imshow函数和cvShowImage函数都是在创建的窗口中显示图像,第一个参数是窗口名,第二个参数是图像;waitKey函数和cvWaitKey函数是事件函数,等待键盘输入;在旧版本中由于使用了指针,故此最后要释放,cvReleaseImage就是释放图像指针,参数是图像指针的指针,即指向图像内存的地址。

这第一篇小试牛刀就到此结束,下边给出源码:

// opencv_test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv2\opencv.hpp>#include <iostream>using namespace std;using namespace cv;int _tmain(int argc, _TCHAR* argv[]){//new version/*Mat aa=imread("aa.jpg");namedWindow("test image aa");imshow("test image aa",aa);waitKey();*///old versionIplImage *image=cvLoadImage("aa.jpg");cvNamedWindow("test image aa");cvShowImage("test image aa",image);cvWaitKey(0);cvReleaseImage(&image);cvDestroyWindow("test image aa");return 0;}





原创粉丝点击