显示电脑中指定路径的图片(支持任意格式)
第一步——加载图片,赋值给指定变量
//首先获取图片,赋值给变量img
IplImage* img = cvLoadImage("C:\\Users\\朱小鹿\\Pictures\\Saved Pictures\\1.jpg",
CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); //以图片最原始的色彩呈现出来
cvLoadImage(char* filename, int flags =CV_LOAD_IMAGE_COLOR)
说明:
通过文件名确实被加载图像的格式,并且该函数在内部分配图像数据结构所需要的内存单元。
支持的图像格式:BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR, RAS,TIFF。
参数解释;
Filename:图像所在路径
Flags:
/* 图像颜色不变*/
#define CV_LOAD_IMAGE_UNCHANGED -1
/*灰度图像(单通道)*/
#define CV_LOAD_IMAGE_GRAYSCALE 0
/*彩色图像(3通道图形)*/
#define CV_LOAD_IMAGE_COLOR 1
/*则输入图像格式可以为8位无符号,16位无符号,32位有符号或者32位浮点型*/
#define CV_LOAD_IMAGE_ANYDEPTH 2
/*保持原样*/
#define CV_LOAD_IMAGE_ANYCOLOR 4
如果想要载入最真实的图形,选择:
CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR
如果输入有冲突的标志,将采用较小的数字值。比如:
CV_LOAD_IMAGE_GRAYSCALE | CV_LOAD_IMAGE_COLOR
将载入单通道。
第二步——创建一个窗口,并为窗口起一个名字
//创建窗口
cvNamedWindow("showImage");
Int cvNameWindow(char * name, int flags)
参数解释:
name : 窗口的标志,土狗已经有同名窗口,该函数什么也不干。
Flags: CV_WINDOW_AUTOSIZE,会根据图像大小自动调整窗口大小。如果是0,则窗口大小不变。
第三步——显示图片,将图片放置在新创建的窗体中显示
//显示图像
cvShowImage("showImage",img);
CvShowImage(char * name, lplImage* dest)
说明:
在指定窗口上显示图像。
参数解释:
name: 窗口的标志。这个标志是cvNamedWindow函数设定的.
dst: 被显示的图像。
第四步——等待用户输入,方可判断何时退出程序
//何时执行后面的程序
cvWaitKey(0);
Int cvWaitKey(int key)
参数解释::
Key:如果key的值是大于0的函数,那么该函数的功能是:在此处暂停key毫秒。如果是小于等于0的数,那么,该函数是在等待用户的按键输入,即可执行后面的语句。
第五步——释放整个程序中分配的内存资源
//释放图片资源
cvReleaseImage(&img);
//释放窗体资源
cvDestroyWindow("showImage");
cvReleaseImage( IplImage** image );
说明:
此方法,将释放image所占用的内存资源
cvDestroyWindow(const char* name );
说明:
此方法,将释放名为name的窗口所占用的内存资源
源代码:
// StudyOpencv_01.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
int main()
{
//首先获取图片,赋值给变量img
IplImage* img = cvLoadImage("C:\\Users\\朱小鹿\\Pictures\\Saved Pictures\\1.jpg",
CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); //以图片最原始的色彩呈现出来
//创建窗口
cvNamedWindow("showImage");
//显示图像
cvShowImage("showImage",img);
//何时执行后面的程序
cvWaitKey(0);
//释放图片资源
cvReleaseImage(&img);
//释放窗体资源
cvDestroyWindow("showImage");
return 0;
}
注意点:
1.图片途径,如果采用的是绝对路径,那么一定记得将\修改为\\(添加一个转义字符),