概述
目录
一、头文件
二、读图片
三、读视频
四、读网络摄像机
一、头文件
我们在使用opencv进行读图片、视频与网络摄像机时,需要三个头文件:
#include <opencv2/imgcodecs/imgcodecs.hpp>
常用的从文件加载图片的imread,保存图片到文件的imwrite,从内存加载图片或者将图片编码后放到内存缓冲区的imencode/imdecode都在这个头文件中
#include <opencv2/highgui.hpp>HighGUI模块包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形界面的接口等部分。
#include <opencv2/imgproc.hpp>图像处理模块,包括:图像滤波 几何图像变换 混合图像变换 直方图 结构分析及形状描述 运动分析及目标跟踪/特征/目标检测
在实际应用中,我们使用总同文件即可:
#include <opencv2/opencv.hpp>
记着使用对应的命名空间:
using namespace cv;
二、读图片
// Images //
void main() {
//定义路径
string path = "Resources//test.png";
//Mat:opencv引入的矩阵数据类型,处理所有图像
Mat img = imread(path);
//展示图片,并给图片取名
imshow("Image", img);
//延迟,直到我们按下关闭按钮
waitKey(0);
}
首先,用string类来定义你想要读取的图片的路径;
然后,创建一个Mat类(全称Matrix,矩阵,用于处理图像)的对象img;
imread是openCV里的一个函数,用于读取路径中的图像,并且以Mat的形式返回。
我们用img来接收这个图像。
最后,使用imshow函数来展示这个图像即可(“Image”为取名)
当然,如果这样就结束的话,图像会一闪而过;
所以我们在写一个延迟函数,直到我们按下关闭按钮,图像才会真正被关闭。
运行截图:
三、读视频
视频是一系列图像,
我们需要遍历所有图像,捕获所有帧,并显示,
所以需要while循环。
void main() {
string path = "Resources//test_video.mp4";
//创建视频捕获对象
VideoCapture cap(path);
//Mat:opencv引入的矩阵数据类型,处理所有图像
Mat img;
while (true)
{
//使用视频捕获对象来显示图片
cap.read(img);
//展示图片,并给图片取名
imshow("Image", img);
//延迟10毫秒,直到我们按下关闭按钮
waitKey(10);
//会报异常,因为没有更多的图像要显示。
}
}
首先创建路径;
然后创建视屏捕获对象cap,并且用path初始化,使这个对象指向的是路径对应的视频文件。
接下来,创建一个Matrix对象img;
C++: bool VideoCapture::read(Mat& image)
功能:该函数结合VideoCapture::grab()和VideoCapture::retrieve()其中之一被调用,用于捕获、解码和返回下一个视频帧这是一个最方便的函数,对于读取视频文件或者捕获数据从解码和返回刚刚捕获的帧,假如没有视频帧被捕获(相机没有连接或者视频文件中没有更多的帧)将返回false。
其中image为帧图像输出,当连续使用read时,它会自动读取下一帧,并覆盖掉上一帧的图像
这里我们用cap返回刚刚捕获的帧,然后用Mat类实例化的对象img来接收,使之为一张图片,再用imshow进行展示;
然后显示10ms后,进入下一个while循环;
cap会自动读取下一帧。,直到while循环结束。
【注:这里视频播放完成后会报异常,因为没有更多的图像要显示。】
运行截图:
四、读网络摄像机
void main() {
//相机ID:0
VideoCapture cap(0);
Mat img;
while (true)
{
cap.read(img);
imshow("image", img);
waitKey(1);
}
}
从摄像机中读取视频,这种情况下,我们会给出一个标识符,用于表示我们想要访问的摄像机,及其与操作系统的握手方式。
对于摄像机而言,这个标志符就是一个标志数字——如果只有1个摄像机,那么就是0,如果系统中有多个摄像机,那么只要将其向上增加即可。
然后依然是用cap来返回帧,并用img接收并显示,再用while循环指向下一帧。
最后
以上就是无情巨人为你收集整理的计算机视觉 OpenCV【一:读图片、视频与网络摄像机】目录一、头文件二、读图片三、读视频四、读网络摄像机的全部内容,希望文章能够帮你解决计算机视觉 OpenCV【一:读图片、视频与网络摄像机】目录一、头文件二、读图片三、读视频四、读网络摄像机所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复