图像显示与加载——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

时间: 2024-10-06 08:06:06

图像显示与加载——opencv(转)的相关文章

Android - JNI静态(static)加载OpenCV

JNI静态(static)加载OpenCV 本文地址: http://blog.csdn.net/caroline_wendy 步骤: 1. 准备OpenCV-Android库 复制OpenCV的sdk至工作文件夹. 下载OpenCV的最新android-sdk: OpenCV-2.4.9-android-sdk; 把其中的sdk文件夹, 复制到工作目录; sdk文件夹里包含native, java, etc. 三个文件夹. 2. 加载OpenCV-Android库 导入(import)工作目录

Xilinx SDDoc 加载opencv库

Xilinx SDSoc 加载opencv库需要下载两个文件 xfopencv 和 Revision Platform 1.xfopencv : github地址 https://github.com/Xilinx/xfopencv 2.revision platform : https://www.xilinx.com/member/forms/download/design-license-xef.html?akdm=1&filename=zcu102-rv-ss-2017-4.zip p

OpenCV入门:(二:加载,显示,修改以及保存图片)

目标: 1.从图片文件打开图片(imread) 2.显示图片(namedWindow和imshow) 3.转换当前图片为灰色图片(cvtColor) 4.保存图片(imwrite) 代码: #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <iostream> using namespac

OpenCV教程【002 VideoCapture加载并播放视频】

#include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; //opencv3.0 alpha加载并播放视频 2015.11.07 int main(int argc, char* argv[]) { const char* vedioName = "D:/演示源码/视频/djxzBrightness.mp4"; cv::VideoCaptu

OpenCV加载图像并显示

从文件中读取一直一张图片,并加载出来 代码: #include "stdafx.h" #include "iostream" using namespace std; #include "opencv2/opencv.hpp" int main() { const char *pImagePath = "E:/C_VC_code/Text_Photo/girl001.jpg"; const char *pWindowsTitl

OPENCV学习笔记2_Mat 加载, 显示

1.1 Introduction to related functions    1.Imread() function Mat imread( const String& filename, int flags = IMREAD_COLOR ); filename:Name of file to be loaded flags:载入标识,指定一个加载图像的颜色类型(参考enum ImreadModes).自带缺省值1,如果在调用时忽略这个参数,就表示载入三通道的彩色图像. enum Imrea

opencv cvLoadImage()函数加载的时候,路径问题

//char* tem = (char*)pathOfImg.GetBuffer(pathOfImg.GetLength()); opencv  cvLoadImage()函数加载的时候......... 试了各种转化的函数什么的,都没有把路径弄对.最后下面的才正确. CString类型转化为const char*: CString filename; const char* tmp = NULL;std::string tempname = (LPCSTR)CStringA(filename)

跟我一起学opencv 第一课之图像加载,修改,保存

使用opencv前记得引入库和头文件: #include<opencv2\opencv.hpp> 1.加载图像(cv::imread)(OPENCV 支持 JPG,PNG,TIFF等常见格式图像文件加载) imread函数原型是: CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR ); ------imread加载一副由filename指定的图像文件并返回一个Mat对象 ------第一个

C++数据文件存储与加载(利用opencv)

首先请先确认已经安装好了opencv3及以上版本. #include <opencv2/opencv.hpp>#include <iostream>#include <string>using namespace cv;using namespace std;存储then int main(){//创造一些要存的数据先 string words = "hello, my guys!"; float n = 3.1415926; Mat m = Mat