1.4highgui模块介绍
HighGUI OpenCV将与操作系统、文件系统和摄像机之类的硬件进行交互的一些函数纳入HighGUI(high-level graphical user interface)库中。HighGUI模块为高层GUI图形用户界面模块,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。本文介绍如何显示图像和播放视频。图像显示 在前面介绍如何创建项目时,就...
·
HighGUI
OpenCV将与操作系统、文件系统和摄像机之类的硬件进行交互的一些函数纳入HighGUI(high-level graphical user interface)库中。HighGUI模块为高层GUI图形用户界面模块,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。本文介绍如何显示图像和播放视频。
图像显示
在前面介绍如何创建项目时,就展示了如何显示图像。这里再次列出主要代码。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main()
{
Mat img = imread("E:/TestData/lena.jpg");
if (img.empty())
{
std::cout << "Error: load image failed." << std::endl;
return -1;
}
namedWindow("image", WINDOW_AUTOSIZE);
imshow("image", img);
waitKey();
return 0;
}
利用imread函数将图像载入到Mat类中,然后利用imshow显示。
imread函数可以在OpenCV官方文档中查到原型:
Mat imread(const string& filename, intflags = 1)
其中第一个参数传入图片路径。第二个参数,int类型的flags,为载入标识,它指定了一个加载图像的颜色类型。默认是1,标识载入三通道的彩色图像。
imshow()函数用于在指定的窗口中显示一幅图像。原型如下:
void imshow(const string& winname, InputArray mat);
其中第一个参数用于在指定的窗口中显示图像。第二个参数是需要显示的图像。
播放视频
可以利用VideoCapture类进行视频的读取和播放。视频的播放,其实就是依次显示每一帧。相关代码如下:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main()
{
//read video
VideoCapture capture("E:/TestData/1.avi");
//display every frame
while (1) {
Mat frame;
capture>>frame; //read current frame
imshow("Read Video", frame); //display current frame
waitKey(30); //delay 30ms
}
return 0;
}
由于实际开发中,我们需要利用Qt或MFC等制作复杂的GUI,所以就不详细介绍了。
更多推荐
已为社区贡献1条内容
所有评论(0)