图像显示与加载——opencv(转)
cvLoadImage()
函数:IplImage* cvLoadImage("图像名称",参数);
函数作用:加载图片;
函数返回值:为IplImage结构体;
参数说明:参数值的宏定义如下;
#define CV_LOAD_IMAGE_UNCHANGED -1 原始图像
#define CV_LOAD_IMAGE_GRAYSCALE 0 灰度图像
#define CV_LOAD_IMAGE_COLOR 1 彩色
#define CV_LOAD_IMAGE_ANYDEPTH 2 任何彩度
#define CV_LOAD_IMAGE_ANYCOLOR 4 任何彩色
函数说明:原始图像如果是灰度图像的话,读取后的图像不可能变为彩色图像,但彩色图像可以任意变为灰度图像,参数部分可以用宏定义名称或者数字来替代.
cvNamedWindow()
函数格式:cvNamedWindow("窗口名称",参数);
函数作用:定义显示图像的界面窗口;
参数:它的参数只有一个
#define CV_WINDOW_AUTOSIZE 1 自动调整窗口大小与图像的大小一致
说明:CV_WINDOW_AUTOSIZE可以让图像显示为原始图像的大小,但如果图片太大很容易造成麻烦,就如RainMan,大小为1200*1600,图像会占满整个屏幕。如果想调整图像大小,就要用到cvResizeWindow()函数,此时cvNamedWindow()的参数不能设成1,而应为0或其他非1的数字;
cvMoveWindow()
格式:cvMoveWindow("窗口名称",屏幕X轴数据, 屏幕Y轴数据);
函数功能:将GUI显示窗口到屏幕指定的位置上;
cvResizeWindow()
格式:cvResizeWindow("窗口名称",缩放后的宽度,缩放后的高度);
功能:将窗口进行缩放变换,变换为参数中的宽度与高度的数值;但cvNamedWindow()的参数必须设定为非1此函数才起作用;
cvGetWindowHandle()
格式:cvGetWindowHandle("窗口名称");
功能:当创建一个新的显示窗口时,系统会随机分配一个窗口指针;但每次重新打开时,这个指针都不一样,因此可以把它看作纯数字;通常都是用(void *)类型来设定;此函数用来通过窗口名称返回窗口的指针。
说明:下面的例子很好的说明了此函数的功能
void * WindowHandle1; //申请显示窗口的指针
WindowHandle1=cvGetWindowHandle("Show Image"); //得到显示窗口地址
printf("The Window Handle is : %d\n",WindowHandle1);
printf("The Window Name is : %s\n",cvGetWindowName(WindowHandle1));
//cvGetWindowName(WindowHandle1) //得到显示窗口的名称
cvGetWindowName()
格式:cvGetWindowName(窗口的ID指针);
功能:通过窗口的ID指针来,返回窗口的名称;
cvShowImage()
格式:cvShowImage("窗口名称",IplImage结构地址或CvArr结构地址)
功能:显示一幅图像
cvWaitKey()
格式:cvWaitKey(int num);
功能:此函数为键盘事件;如果用cvShowImage()来显示图像的话,就必须用到cvWaitKey(),而不能用"stdlib.h"中的的system("pause")取代。cvWaitKey()是专门在OpenCV的GUI界面下等待键盘命令,而不是在黑白环境下的命令提示符
说明:键盘事件分为两种:阻断式(block)和非阻断式(unblock)。阻断式的就是cvWaitKey(0):它会一直等待到键盘事件发生为止;非阻断式的为参数为大于0的数字如:cvWaitKey(10),它将会等到10毫秒后自动输出-1,代表10毫秒內沒接收到键盘上的任何事件。
cvDestroyWindow()
格式:cvDestroyWindow("窗口名称')
功能:清除窗口
cvReleaseImage()
格式:cvReleaseImage(IplImage结构地址)
功能:释放申请的IplImage结构图像的内存
源程序:
//头文件
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
#include <cvaux.h>
void main()
{
//char *FileName[10]="lena.jpg";
void * WindowHandle1;
char *FileName="lena.jpg";
char *WndName = "Show Image";
IplImage *Image1 = cvLoadImage(FileName,1);
cvNamedWindow(WndName,0);
cvResizeWindow(WndName,400,400);
WindowHandle1=cvGetWindowHandle("Show Image");
printf("The Window Handle is : %d\n",WindowHandle1);
printf("The Window Name is : %s\n",cvGetWindowName(WindowHandle1));
cvShowImage(WndName,Image1);
cvWaitKey(0);
cvDestroyWindow(WndName);
cvReleaseImage(&Image1);
}
原文出处:http://hi.baidu.com/õѩ����/blog/item/26652fc6a956d3d5d000607b.html
图像显示与加载——opencv(转)的更多相关文章
- Anaconda快速加载opencv
刚刚发现了两种Anaconda快速加载opencv的方法,亲测有效: 第一种: 直接在Navigator Environment 中搜opencv 如果搜不到,登陆Anaconda Cloud官网 h ...
- Xilinx SDSoc 加载opencv库
Xilinx SDSoc 加载opencv库需要下载两个文件 xfopencv 和 Revision Platform, Revision Platform需要和具体的开发板型号对应,我用的是zcu1 ...
- Eclipse c++环境搭建 并加载OpenCV库 2015最新
C++: 搜索 Eclipse c++ 即可 注意新版的mingw安装器,要安装: 1.mingw-developer-toolkit 2.mingw32-base 3.mingw32-gcc-g++ ...
- OpenCV图像加载与保存
OpenCV中的图像加载与保存 头文件是包含的库,在GitHub上下载的 imread("图片路径",图片加载方式) 图片加载方式: IMREAD_GRAYSCALE 灰度图像 I ...
- OpenCV加载图像并显示
从文件中读取一直一张图片,并加载出来 代码: #include "stdafx.h" #include "iostream" using namespace s ...
- Opencv step by step - 加载视频
刚买了本 "学习Opencv" 这本书,慢慢看起来. 一开始就是加载视频了.当然了,首先你要有个视频 从这里下载了一个: tan@ubuntu:~$ wget http://www ...
- ZEDBOARD启动自启配置(加载镜像) 分类: OpenCV ubuntu shell ZedBoard Eye_Detection 2014-11-08 18:53 167人阅读 评论(0) 收藏
参考:陆书14.2.8 1)备份ramdisk8M.image.gz 2)加载rootfs镜像文件: 3)在镜像目录下建立自己所需文件夹(挂载目录): 我需要的挂载目录有两个: root/qt/ins ...
- OpenCV程序在Debug时出现「PDB文件无法加载」的一个解决方法
这几天毕设要用到OpenCV,按照网上的教程来搭建开发环境. 用的是OpenCV 3.0 beta + Visual Studio Community 2013.我的系统64位是Win 8.1,但在加 ...
- [OpenCV学习笔记3][图像的加载+修改+显示+保存]
正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...
随机推荐
- js boolean 判断
在写项目的时候出现了一个这样的问题,虽然问题解决了,但是还是有点疑问. 在数据库中设计的表的一个字段为是否审核(is_vaild) 类型 tinyint(1) 对应的在 java中就是布尔类型(boo ...
- CentOS Linux iptables 防火墙
快速安装,配置,启动,检查 - 关闭 5002 - 5011 端口开放所有其它 yum install iptables iptables -F iptables -X iptables -Z ipt ...
- 转!!MYSQL数据类型
这篇文章主要介绍了MySQL数据类型和常用字段属性总结,本文总结了日期和时间数据类型.数值数据类型.字符串数据类型等,需要的朋友可以参考下 前言 好比C++中,定义int类型需要多少字节,定义 ...
- JavaScript设计模式与开发实践 - 单例模式
引言 本文摘自<JavaScript设计模式与开发实践> 在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返 ...
- 在腾讯云上创建您的SQL Cluster(2)
版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/248 来源:腾云阁 https://www.qclo ...
- js上下滚屏效果,代码通过测试
这是html代码 <div class="box"> <div class="bcon"> <h1><b>领号实 ...
- Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 排序、筛选、分页以及分组
Sorting, filtering, paging, and grouping 7 of 8 people found this helpful By Tom Dykstra The Contoso ...
- 关于OneProxy推广
通过以下关键字 分库分表,读写分离,连接池,跨库查询,开源数据库,MySQL,高性能,并行查询 在搜索引擎中,都找不到OneProxy和OneSQL的影子
- Question store (Repeated review)
题目36 - ACM在线评测系统http://acm.nyist.net/JudgeOnline/problem.php?pid=36 用户名密码INVATION 讲道理太卡 第一:要注意不同的函数 ...
- Android Snackbar
使用Snackbar我们可以在屏幕底部(大多时候)快速弹出消息,它和Toast非常相似,但是它更灵活一些. 当它显示一段时间后或用户与屏幕交互时它会自动消失. 可以自定义action-可选操作. sw ...