图像显示与加载——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() 图像的显 ...
随机推荐
- OpenGL的几何变换2之内观察立方体
我想实现的一个场景是:一个立方体,相机的坐标在立方体的中心点,相机不变,立方体旋转,可以站在立方体中心点查看立方体内部. 实际上就是立方体图像,这是在全景图片当作比较简单的方式,画面不会变形和扭曲,但 ...
- hiho1096_divided_product
题目 给出两个正整数N和M, N <= 100, M <= 50, 可以将N分解成若干个不相等的正整数A1, A2... Ak的和,且A1, A2 ... Ak的乘积为M的倍数.即 N = ...
- phalcon: model 验证数据完整性
The above example performs a validation using the built-in validator “InclusionIn”. It checks the va ...
- python的模式匹配 - 正则表达式
之前学过perl,深知perl在模式匹配方面的强大,现在想完全转到python,虽说python的模式匹配没有perl那么强大,但还是可以用的,只是需要一个熟悉的过程. 参考资料: Python正则表 ...
- 设置segue跳转页面
第二种是利用ViewController与ViewController之间,拖拽添加segue 方法中提到的设置segue的identifier界面 在.h文件中声明 - (IBAction)goto ...
- 在Windows下安装64位压缩包版mysql 5.7.11版本的方法
为了学习数据库,自己去网上下载了最新版本的Windows64位的mysql 5.7.11,但是花了很长的时间在安装的问题上,同时也借鉴了几位前辈的博文来帮助自己解决在安装过程中遇到的问题,安装成功之后 ...
- IE9以上 CSS文件因Mime类型不匹配而被忽略 其他浏览器及IE8以下显示正常
什么是Mime类型? MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名 ...
- jmeter 构建一个数据库测试计划
添加用户 第一步你想做的每一个JMeter测试计划是添加一个 线程组 元素. 的线程组 告诉JMeter的用户数量你想模拟,用户应该多长时间 发送请求,他们应该发送的请求的数量. 继续添加Thread ...
- SqlServer关闭与启用标识(自增长)列
1 --添加新列 2 ALTER TABLE TABLENAME ADD ID int 3 --赋值 4 UPDATE TABLENAME SET ID = IDENTITY_ID 5 --删除标识列 ...
- 转载:javascript面向对象编程:非构造函数的继承
一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Chinese = { nation:'中国' }; 还有一个对象,叫做&qu ...