通过HighGUI(high-level graphical user interface)可以实现打开窗口、显示图像、读出和写入图像文件,处理鼠标、光标、键盘事件。而HighGUI主要分成“视频输入/输出”、“图像输入/输出”和“GUI工具”,分别在cacap*、grfmt*和window*源文件中实现。
int cvNamedWindow
( const char* name,
int flags=CV_WINDOW_AUTOSIZE
);
int cvNamedWindow
( const char* name,
int flags=CV_WINDOW_AUTOSIZE
);
第一个参数用来表示新窗口的名称,这个名称显示在窗口的顶部,同时用作HighGUI中其他函数调用窗口的句柄。第二参赛是个标志,用来表示是否需要使窗口大小自动适应读入的图像大小。释放可以用cvReleaseImage()和cvDestroyWindow()来实现。
载入图像可以用cvLoadImage(),当打开一副图像时,该函数并不分析文件扩展名,而是通过分析图像文件的前几个字节来确定图像的编码格式。注意:当cvLoadImage()读入失败时,并不会产生一个运行时错误,而是返回一个空指针。与cvLoadImage()对应的函数是cvSaveImage(),其实现了保存图像功能。
IplImage* cvLoadImage
( const char* filename,
int iscolor=CV_LOAD_IMAGE_COLOR
);
int cvSaveImage
(
const char* filename,
const CvArr* image
);
IplImage* cvLoadImage
( const char* filename,
int iscolor=CV_LOAD_IMAGE_COLOR
);
int cvSaveImage
(
const char* filename,
const CvArr* image
);
代码中的CvArr是C语言的风格,功能与面向对象语言中基类类似的结构。同样的显示图像可以用cvShowImage()。我比较喜欢读代码所以在此贴一段标准的实例吧。
int main(int argc,char** argv)
{
// Create a named window with the name of the file.
cvNamedWindow(argv[1],1]);