OpenCV入门:显示图像

         OpenCV为我们提供了都区各种图像文件的功能,本节利用OpenCV显示出一幅图像。先上源代码:

//  main.cpp
//  Display_Image
//
//  Created by 黄露 on 16/3/17.
//  Copyright  2016年 黄露. All rights reserved.
//

#include "highgui.h"

int main(int argc, const char * argv[]) {
    //创建图像指针,加载图像至内存
    IplImage * img = cvLoadImage("/Users/huanglu/Pictures/thusada.jpg");
    //创建窗口
    cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
    //显示图像
    cvShowImage("Example1", img);
    //等待,输入参数为延迟,0可以换成负整数
    //程序停在显示函数处,不运行其他代码
    cvWaitKey(0);
    //cvWaitKey(-1);
    //释放图像
    cvReleaseImage(&img);
    //释放窗口
    cvDestroyWindow("Example1");
    return 0;
}

这段代码很简单,看注释基本上能明白。其中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),在使用时flags可以选择可选正数、零和负数三种值,正数表示作为三通道图像载入,零表示该图像作为单通道图像,负数表示载入图像的通道数由图像文件自身决定,其缺省值为-1。如

cvLoadImage( filename, -1 ); //默认读取图像的原通道数
cvLoadImage( filename, 0 );  //强制转化读取图像为灰度图
cvLoadImage( filename, 1 );  //读取彩色图

cvNamedWindow用于创建一个显示窗口,其原型为

int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );

name 窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。flags 窗口属性标志。可以选择CV_WINDOW_AUTOSIZE(1)和0两种值。CV_WINDOW_AUTOSIZE这个标志被设置后, 如果用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像(参考cvShowImage)。0表示用户可以手动调节窗口大小,且显示的图像尺寸随之变化。

cvShowImage用于在指定窗口显示图像,其原型为

void cvShowImage( const char* name, const CvArr* image );

其中name 窗口的名字,image 被显示的图像。waitKey()用于延迟,原型如下

int waitKey(int delay=0)

当delay>0时,延迟"delay"ms,在显示视频时这个函数是有用的,用于设置在显示完一帧图像后程序等待"delay"ms再显示下一帧视频;如果使用cvWaitKey(0)则只会显示第一帧视频。当delay<=0的时,如果没有键盘触发,则一直等待,否则返回值为键盘按下的码字;

剩下两个函数cvReleaseImage()和cvDestroyWindow()用于释放图像指针和窗口。

时间: 2025-01-27 03:05:27

OpenCV入门:显示图像的相关文章

【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

<h1 style="margin: 0px; padding: 0px;"> <span style="font-family: "Microsoft YaHei"; font-size: 32px; color: rgb(204, 153, 51); font-weight: normal;">1.下载和安装OpenCV SDK</span> </h1> <div> <span

OpenCV入门:简单图像处理实例——平滑滤波

本文简单举一个图像平滑滤波的例子,以此认识OpenCV为我们提供的强大图像处理功能.代码如下: // // main.cpp // Smooth_Filter // // Created by 黄露 on 16/3/21. // Copyright 2016年 huanglu_thu13. All rights reserved. // #include "cv.h" #include "highgui.h" int main(int argc, const cha

OpenCV入门:显示视频

OpenCV还提供了载入视频并输出的功能,本节进行简单的输出显示操作.先上源代码: // // main.cpp // Display_Vedio // // Created by 黄露 on 16/3/18. // Copyright 2016年 黄露. All rights reserved. // #include "highgui.h" int main(int argc, const char * argv[]) { //创建窗口 cvNamedWindow("Ve

OpenCV入门:图像边缘提取

本文将介绍如何利用OpenCV进行边缘提取,源代码如下: // // main.cpp // Edge_Detection // // Created by 黄露 on 16/3/21. // Copyright 2016年 huanglu_thu13. All rights reserved. // #include "cv.h" #include "highgui.h" int main(int argc, const char * argv[]) { //创建

OpenCV入门:播放视频加入滚动条

本节在上一节的基础上添加滚动条,以实现前进或后退,先上代码: // // main.cpp // Display_Vedio_Control // // Created by 黄露 on 16/3/19. // Copyright 2016年 huanglu_thu13. All rights reserved. // #include "cv.h" #include "highgui.h" //定义两个全局变量 //设置滚动条初始位置为0 int g_slider

图像处理-opencv新手入门方法介绍

问题描述 opencv新手入门方法介绍 本人大二,刚刚接触科研方面内容,想入门opencv图像处理技术,但是由于接触的还不多,c++也处于入门级水平,一些opencv里面的算法都不怎么看得懂数学原理,现在不知道是怎么入门,望高人指教 解决方案 你最好还是把C++的基础弄扎实一点,然后推荐一本书,<学习OpenCv中文版>个人觉得还是挺不错的,是C语言写的.然后边看书边在csdn上找一些相关的博客 解决方案二: opencv是一个计算机视觉库,包含很多图像处理和计算机视觉方面的通用算法,所以学习

几个非常好的opencv教程【持续更新】

1.[OpenCV]入门教程 http://blog.csdn.net/column/details/opencv-tutorial.html 2.OpenCV学习笔记(2):Mat矩阵的初始化 3.[OpenCV入门指南] http://blog.csdn.net/morewindows/article/category/1291764 4.白话经典算法系列之七 堆与堆排序 http://blog.csdn.net/morewindows/article/details/6709644#com

vs2010-opencv 入门问题求解!

问题描述 opencv 入门问题求解! 我现在安装了opencv 2.4.10 和vs2010 我调试了下面的程序为什么摁了F5以后感觉程序没有反应?(感觉就像窗口刷新了一遍但是没有矩阵输出)请问这是什么原因呢?另外我调试最简单的图片输出也是不能用Mat类调试,要使用Mat类的话就会说我"rR 6010 Abort has been called"就卡在那里了! 求大神指点一下!please! #include<iostream>#include <opencv2/c

(转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU

      首页 视界智尚 算法技术 每日技术 来打我呀 注册     OpenCV学习笔记大集锦 整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址:http://blog.csdn.net/column/details/opencv-manual.html 2:部分OpenCV的函数解读和原理解读 作者:梦想腾飞数量:20篇博文网址:http:/