您的位置:首页 > 运维架构

OpenCV学习笔记 第一篇 显示图像

2015-04-16 20:12 417 查看

OpenCV学习笔记 第一篇 显示图像

关于opencv的配置,大家自己找教程配置,本笔记侧重于对opencv基础入门的学习,本节学习opencv的一些简单语句,如何利用opencv来加载图像,显示图像,来学习一些简单基础的opencv的语句,推荐一本opencv的经典书《学习OpenCV》中文版

-

一,主要函数介绍

1.1 cvLoadImage

函数功能:载入图像

函数cvLoadImage从指定文件读入图像,返回读入图像的指针。

函数原型:

IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );

函数详解:

filename :要被读入的文件的文件名(包括后缀);

支持多种图像,如(JPEG文件 - JPEG, JPG, JPE、便携式网络图片- PNG、Windows位图文件- BMP, DIB等多种格式)

flags :指定读入图像的颜色和深度:

指定的颜色可以将输入的图片转为3通道(CV_LOAD_IMAGE_COLOR), 单通道 (CV_LOAD_IMAGE_GRAYSCALE), 或者保持不变(CV_LOAD_IMAGE_ANYCOLOR)。

也可以写成如下:

cvLoadImage( filename, -1 ); 默认读取图像的原通道数

cvLoadImage( filename, 0 ); 强制转化读取图像为灰度图

cvLoadImage( filename, 1 ); 读取彩色图

1.2cvNamedWindow

函数功能:创建窗口

函数原型:cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );

函数详解:name 窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。

flags 窗口属性标志。可以选择CV_WINDOW_AUTOSIZE(1)和0两种值。CV_WINDOW_AUTOSIZE这个标志被设置后, 如果用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像(参考cvShowImage)。0表示以固定的窗口尺寸显示图像。

函数cvNamedWindow创建一个可以放置图像和trackbar的窗口。被创建的窗口可以通过它们的名字被引用。 如果已经存在这个名字的窗口,这个函数将不做任何事情,以后为大家介绍trackbar的学习

1.3cvShowImage

函数功能:显示图像

函数原型:void cvShowImage( const char* name, const CvArr* image );

函数详解:name 窗口的名字。

image 被显示的图像。

函数cvShowImage 在指定窗口中显示图像。如果窗口创建的时候被设定标志CV_WINDOW_AUTOSIZE,那么图像将以原始尺寸显示;否则,图像将被伸缩以适合窗口大小

1.4cvWaitKey

函数功能:不断刷新图像,返回值为当前键盘按键值,默认值为零

函数原型:C++: int waitKey(int delay=0)

函数详解,等待按键,使图像一直显示

1.5cvDestroyWindow

函数功能:销毁一个窗口

函数原型:void cvDestroyWindow( const char* name );

函数详解:name 要被销毁的窗口的名字。

函数cvDestroyWindow销毁指定名字的窗口。

1.6cvReleaseImage

函数功能:销毁已定义的IplImage指针变量,释放占用内存空间

函数原型:void cvReleaseImage( IplImage** image );

二,示例程序演示

#include <opencv2/opencv.hpp>
int main()
{
const char *pstrImageName = "123456.jpg";//注意,需要将图片放在所建工程的路径下,名字和格式需一致
const char *pstrWindowsTitle = "原图";

IplImage *pImage = cvLoadImage(pstrImageName, 1); //从文件中读取图像
cvNamedWindow(pstrWindowsTitle,1 );  //创建窗口
cvShowImage(pstrWindowsTitle, pImage); //在指定窗口中显示图像

cvWaitKey();  //等待按键事件

cvDestroyWindow(pstrWindowsTitle);  //毁坏窗口
cvReleaseImage(&pImage);  //破坏图像
return 0;
}


程序运行结果如下



这次介绍的一些基本语句很简单,也是本人学习opencv的笔记一些整理,希望能够为我等菜鸟简单入门,随着学习的深入,也会逐渐学习,谢谢大家观看,欢迎提意见,谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息