我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1692|回复: 5

[技术文章] 【Rayeager PX2分享】OpenCV入门之图像显示

[复制链接]

该用户从未签到

36

主题

1

回帖

33

积分

一级逆天

积分
33

社区居民

QQ
发表于 2015-4-14 16:32:29 | 显示全部楼层 |阅读模式
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图像
20150408195202_48560.jpg

20150408195212_98733.jpg


源代码: picture_display.rar (78 KB, 下载次数: 0)
感谢Ickey电子工程社区 fjjjnk1234的分享
回复

使用道具 举报

该用户从未签到

19

主题

752

回帖

666

积分

二级逆天

积分
666

社区居民新人进步奖优秀斑竹奖终身成就奖幽默大师奖灌水天才奖贴图大师奖

QQ
发表于 2015-4-14 18:19:54 | 显示全部楼层
每天进步一点点!
回复

使用道具 举报

  • TA的每日心情
    开心
    昨天 13:36
  • 签到天数: 129 天

    [LV.7]常住居民III

    32

    主题

    1万

    回帖

    3万

    积分

    三级逆天

    积分
    34420

    终身成就奖特殊贡献奖原创先锋奖社区居民忠实会员社区劳模最爱沙发原创达人优秀斑竹奖宣传大使奖

    QQ
    发表于 2015-4-14 20:11:09 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    1779

    回帖

    2141

    积分

    二级逆天

    积分
    2141

    终身成就奖社区居民忠实会员社区劳模

    QQ
    发表于 2015-4-14 23:23:37 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    156

    回帖

    189

    积分

    二级逆天

    积分
    189

    社区居民

    QQ
    发表于 2015-5-5 08:52:53 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    12

    主题

    329

    回帖

    226

    积分

    二级逆天

    积分
    226

    社区居民新人进步奖终身成就奖

    QQ
    发表于 2015-5-6 15:39:14 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表