文档章节

【Rayeager PX2分享】OpenCV入门之图像显示

穿
 穿prada的008
发布于 2015/04/14 16:40
字数 575
阅读 17
收藏 0

OpenCV开发包提供了读取各种类型的图像文件、视频内容以及摄像机输入的功能。这些功能是OpenCV开发包中所包含的HighGUI工具集的一部分。本次主要分享使用OpenCV加载图像并显示在屏幕上。

picture_display.cpp:

 #include <opencv2/core/core.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <iostream>


int main (int argc, char **argv)

{

        IplImage* img = cvLoadImage(argv[1]);

        cvNamedWindow("Rayeager PX2", CV_WINDOW_AUTOSIZE);

        cvShowImage("Rayeager PX2", img);

        cvWaitKey(0);

        cvReleaseImage(&img);

        cvDestroyWindow("Rayeager PX2");

}

makefile:


 INCLUDE = $(shell pkg-config --cflags opencv)

LIBS = $(shell pkg-config --libs opencv)

SOURCES = picture_display.cpp

# 目标文件

OBJECTS = $(SOURCES:.cpp=.o)

# 可执行文件

TARGET = picture_display

$(TARGET):$(OBJECTS)

        g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)

$(OBJECTS):$(SOURCES)

        g++ -c $(SOURCES)

clean:

        rm $(OBJECTS) $(TARGET)

# 编译规则 $@代表目标文件 $< 代表第一个依赖文件

%.o:%.cpp

        g++ -I $(INCLUDE) -o $@ -c $<

代码讲解:

程序中的IplImage* img = cvLoadImage(argv[1]);的功能是将图像文件加载至内存。cvLoadImage()函数是一个高层调用接口,它通过文件名确定被加载文件的格式;并且该函数自动分配图像数据结构所需的内存。

cvNamedWindow("Rayeager PX2", CV_WINDOW_AUTOSIZE);

cvNamedWindow()函数也是一个高层调用接口,该函数由HighGUI库提供。函数用于在屏幕上创建一个窗口,将被显示的图像包含于该窗口中。函数第一个参数指定了该窗口的窗口标题,第二个参数定义了窗口的属性。该参数可被设置为0或CV_WINDOW_AUTOSIZE,设置为0时,窗口的大小不会因图像的大小而改变;设置为CV_WINDOW_AUTOSIZE时,窗口则会根据图像的实际大小自动进行拉伸或缩放。

cvShowImage("Rayeager PX2", img);

该函数用于显示图像,cvShowImage()函数通过设置其第一个参数确定在哪个已存在的窗口中显示图像。

cvWaitKey(0);的功能是使程序暂停,等待用户触发一个按键操作。

cvReleaseImage(&img);的功能是释放为该图像所分配的内存。

cvDestroyWindow("Rayeager PX2");的功能是销毁显示图像文件的窗口。

 

在源代码所在的文件夹中make生成可执行文件picture_display,之后./ picture_display Rayeager PX2.jpg就能显示文件夹中的Rayeager PX2.jpg图像


源代码: picture_display.rar

感谢Ickey电子工程社区 fjjjnk1234的分享


© 著作权归作者所有

穿
粉丝 0
博文 51
码字总数 24172
作品 0
福州
私信 提问
【OpenCV入门指南】第一篇 安装OpenCV

【OpenCV第一篇】安装OpenCV 本篇主要介绍如何下载OpenCV安装程序,如何在VS2008下安装配置OpenCV,文章最后还介绍了一个使用OpenCV的简单小例子。 《OpenCV入门指南》系列文章地址:http://...

长平狐
2012/12/10
1K
0
【Rayeager PX2分享】OpenCV入门之线段检测

线段检测主要运用Hough变换,Hough变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状(如,直线,圆等...

穿prada的008
2015/05/26
873
0
在Rayeager Px2开发板上演示opencv人脸识别demo

1、按照芯客论坛提供是方法支持 usb 摄像头 http://bbs.chipspark.com/forum.php?mod=viewthread&tid=3922 http://wiki.chipspark.com/cn/index.php/PX2%E5%BC%80%E5%8F%91%E6%9D%BFUSB%E6%9......

穿prada的008
2014/11/26
581
0
【OpenCV入门指南】第二篇 缩放图像

【OpenCV入门指南】第二篇 缩放图像 上一篇《【OpenCV入门指南】第一篇安装OpenCV》讲解了如何在VS2008下安装和配置OpenCV,本篇将介绍使用OpenCV来缩放图片。首先介绍几个关键函数——cvRes...

长平狐
2012/12/10
345
0
【OpenCV入门指南】第四篇 图像的二值化

【OpenCV入门指南】第四篇 图像的二值化 在上一篇《【OpenCV入门指南】第三篇Canny边缘检测》中介绍了使用Canny算子对图像进行边缘检测。与边缘检测相比,轮廓检测有时能更好的反映图像的内容...

长平狐
2012/12/10
13.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
11
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部