【OpenCV归纳】4 关于HighGUI

本文介绍了OpenCV中的HighGUI模块,包括如何使用cvNamedWindow创建窗口、cvLoadImage加载图像、cvSaveImage保存图像以及cvShowImage显示图像。此外,还讨论了cvMoveWindow改变窗口位置和cvWaitKey处理用户输入的功能。最后,通过示例展示了如何实现鼠标事件回调函数my_mouse_callback,用于在图像上绘制矩形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



通过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]); 
 
    // Load the image from the given file name. 
    IplImage* img=cvLoadImage(argv[1]); 
 
    // Show the image the user hits the "Esc" key. 
    while(1) 
    { 
       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值