今天开始更新博客系列文章《Opencv从入门到放弃》。
你看到的是本系列的第一节 显示图像
本人用的开发环境是UBUNTU16.04,版本是OPENCV2.3.1,具体怎么装我的博客里面有。
废话不多说,直接复制一个官方sample,然后改代码,省去MAKEFILE的麻烦。具体操作如下:
cd opencvdir/samples/c
cp -rf example_cmake my_exp
OK,这样我们就能进 my_exp 随便写代码了。
我们的任务是打开一幅图,然后显示出来。
(1)加载图片
怎么打开一幅图呢?我们用一个API:cvLoadImage
这个函数的原形是这样的:
IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );
filename :要被读入的文件的文件名(包括后缀);
flags :指定读入图像的颜色和深度:
指定的颜色可以将输入的图片转为3信道(CV_LOAD_IMAGE_COLOR), 单信道(CV_LOAD_IMAGE_GRAYSCALE), 或者保持不变(CV_LOAD_IMAGE_ANYCOLOR)。
(2)显示图片
显示图片我们需要先创建一个窗口,然后在这个窗口中去显示已经加载好的图图就好了。
OPENCV全程API走起:
cvNamedWindow -- 创建窗口
cvShowImage -- 显示图片
(2)显示图片
显示图片我们需要先创建一个窗口,然后在这个窗口中去显示已经加载好的图图就好了。
OPENCV全程API走起:
cvNamedWindow -- 创建窗口
cvShowImage -- 显示图片
int cvNamedWindow( const char* name, int flags );
-
name
- 窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。 flags
-
窗口属性标志。目前唯一支持的标志是
CV_WINDOW_AUTOSIZE
。 当这个标志被设置后,如果用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像 (参考cvShowImage)。
void cvShowImage( const char* name, const CvArr* image );
name 窗口的名字。
image 被显示的图像。
OK,接下来我把源代码放上来:
/**
* Function: 显示一幅图像
* Author : 靳皓屹
* Date : 2017/02/28
**/
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char** argv )
{
IplImage* src = cvLoadImage("cat.jpg",CV_LOAD_IMAGE_ANYCOLOR); // 打开图像
cvNamedWindow("src_img",CV_WINDOW_AUTOSIZE); //创建一个窗口
cvShowImage("src_img",src); //在窗口中显示图像
cvWaitKey(0);
cvReleaseImage(&dst);
}
注意:要在文件夹里放一张图片,叫cat.jpg