IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> opencv中对视频处理获取和设置视频的分辨率、fps等 -> 正文阅读

[人工智能]opencv中对视频处理获取和设置视频的分辨率、fps等

分辨率

修改分辨率

通过cap函数进行修改

#include <opencv2\opencv.hpp>  
 
#include<ctime>
using namespace cv;  
using namespace std;
 
int main( )  
{  
	//【1】从摄像头读入视频
	VideoCapture capture(0);
 
	//【2】循环显示每一帧
	int j=0;
	capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);      //设置宽度
    capture.set(CV_CAP_PROP_FRAME_HEIGHT,720); 		//设置高度
	while(1&&(j<100)) 
	{   clock_t start,finish;
        start=clock();
		j++;
		Mat frame;  //定义一个Mat变量,用于存储每一帧的图像
		capture>>frame;  //读取当前帧
		imshow("读取视频",frame);  //显示当前帧
		cout<<frame.size()<<endl;
		imwrite("1.jpg",frame);
		finish=clock();
  
       cout << finish-start   << "/" << CLOCKS_PER_SEC  << " (s) "<< endl;
		waitKey(1);  //延时30ms
	}  
	return 0;     
}  

对每一帧进行处理

但是上面的方法有的时候是修改不了的,尤其是网络摄像机,这时候就需要读取每一帧,然后对每一帧进行修改。

#include<opencv2/opencv.hpp>
#include<iostream>
 
using namespace std;
using namespace cv;
 
int main()
{
    VideoCapture capture("F:\\leafseg\\video1.mp4");//获取视频,根据自己的视频位置更改
    if (!capture.isOpened())
        return -1;
    Mat frame;
 
    capture.set(CAP_PROP_FRAME_WIDTH, 640);
    capture.set(CAP_PROP_FRAME_HEIGHT, 480);
    Mat image;
    //VideoWriter(const String & filename, int fourcc, double fps,Size frameSize, bool isColor = true);
 
    VideoWriter videowriter("F:\\leafseg\\video1Change.avi", VideoWriter::fourcc('M', 'J', 'P', 'G'),30,Size(640,480),true);   //改变图像的帧速为30,图像帧的大小是(640,480)
   
    while (capture.read(image)) 
    {
            resize(image, image, Size(640, 480), INTER_LINEAR);
            //resize(image, image, Size(640, 360), 0, 0, INTER_CUBIC);    //这两种方法
            videowriter.write(image);
    }
    waitKey();
    return 0;
 
}

这种方法视频的分辨率修改好了,但发现数据速率和比特率提高了,视频的大小也变大了,不太懂这个原因了。需要学习一些视频数据方面的内容,压缩和解压的问题。

亮度、饱和度等其他的参数

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
    char c = 0;
    VideoCapture capture(0);
    /*设置摄像头参数 不要随意修改
    capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);//宽度
    capture.set(CV_CAP_PROP_FRAME_HEIGHT, 960);//高度
    capture.set(CV_CAP_PROP_FPS, 30);//帧数
    capture.set(CV_CAP_PROP_BRIGHTNESS, 1);//亮度 1
    capture.set(CV_CAP_PROP_CONTRAST,40);//对比度 40
    capture.set(CV_CAP_PROP_SATURATION, 50);//饱和度 50
    capture.set(CV_CAP_PROP_HUE, 50);//色调 50
    capture.set(CV_CAP_PROP_EXPOSURE, 50);//曝光 50
    */
    //打印摄像头参数
    printf("width = %.2f\n", capture.get(CV_CAP_PROP_FRAME_WIDTH));
    printf("height = %.2f\n", capture.get(CV_CAP_PROP_FRAME_HEIGHT));
    printf("fps = %.2f\n", capture.get(CV_CAP_PROP_FPS));
    printf("brightness = %.2f\n", capture.get(CV_CAP_PROP_BRIGHTNESS));
    printf("contrast = %.2f\n", capture.get(CV_CAP_PROP_CONTRAST));
    printf("saturation = %.2f\n", capture.get(CV_CAP_PROP_SATURATION));
    printf("hue = %.2f\n", capture.get(CV_CAP_PROP_HUE));
    printf("exposure = %.2f\n", capture.get(CV_CAP_PROP_EXPOSURE));
    while (1)
    {
        Mat frame;
        capture >> frame;
        namedWindow("video");
        imshow("video", frame);
        c = cvWaitKey(30);
        if (c == 27)//Esc键退出
        {
            break;
        }
    }
    return 0;
}

//原文链接:https://blog.csdn.net/csdnforyou/article/details/82257699
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:21:26  更:2021-08-05 17:22:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 21:57:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码