图像显示与加载——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() 图像的显 ...
随机推荐
- 工作流学习——Activiti流程变量五步曲 (zhuan)
http://blog.csdn.net/zwk626542417/article/details/46648139 ***************************************** ...
- Redis常用的基本命令整理
SET key value [EX seconds] [PX milliseconds] [NX|XX] 设置缓存 K-V,如果 key 已经存在,则重写 EX seconds -- 设置过期时间, ...
- jQuery clone()方法绑定事件
先看如下代码: (function ($) { var div = $("<div></div>").css({width: "100px&quo ...
- 如何让div中的内容垂直居中
虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处.比如表格布局中的垂直居中就是Div布局的一大弱项,不过好在千变万化的CSS可以灵活运用,可以制作出准垂直居中效果, ...
- HTML5 game engines
The following are few examples of game engines implemented with HTML5 and JavaScript: Construct 2: O ...
- 初学java之StringBuffer类的常用方法
import java.text.*; public class Gxjun { public static void main(String atgs[]) { StringBuffer str= ...
- 输出有序数组的中两个元素差值为指定值diff的两个元素
题目: 输出有序数组的中两个元素差值为指定值diff的两个元素. 思路: 这与输出两个元素的和的值为一定值类似,需要两个指针,不同的是:指针不是一左一右,而是一前一后. 如果差值等于diff,则返回: ...
- 10 vi简介(重点)
1.为什么学习vi? vi很多系统都预装,如果我们的系统没有图像界面,可以使用vi vi是轻量级且执行快速的编辑器 2.vi的几种模式 命令模式.插入模式.底行模式 1) 命令行模式(command ...
- 细谈HTML5
回顾过了html接下来我们就来看看HTML5吧! HTML5手机应用的最大优势就是可以在网页上直接调试和修改.原先应用的开发人员可能需要花费非常大的力气才能达到HTML5的效果,不断地重复编码.调试和 ...
- 从java 转到 c# 知识点
1. 重写的父类方法 必须是虚方法 用virtual 关键字修饰 而子类必须用 ovrride 关键字 java中不需要,, 2. namespace => packet using => ...