1. 程式人生 > >opencv學習筆記--將多幀圖片儲存為視訊

opencv學習筆記--將多幀圖片儲存為視訊

將多幀圖片儲存為視訊

最近在使用opencv呼叫攝像頭處理資料,想把處理好的視訊幀儲存成一個完整的視訊,方便演示。查了很多資料,發現關於儲存成視訊的介紹很少,特地把自己整理好的資料跟大家分享一下,有什麼錯誤的地方煩請大家不吝賜教。
閒話就不扯了,直接上乾貨

#include "opnecv2/opencv.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
    int c=0;
    VideoCapture cap(c);//呼叫攝像頭,如果有多個攝像頭,可以調整c(0,1,2,...)來選擇到你想要的攝像頭,
if (!cap.isOpened()) { return -1; } bool stop = false; int a = 0; //設定視訊編寫器 VideoWriter write; string outVideo = "Show_Example.avi"; int fps = 30;//幀率double fps=cap.get(CV_CAP_PROP_FPS);但是我呼叫該函式返回的是0 int height = static_cast<int>(cap.get(CV_CAP_PROP_FRAME_HEIGHT));//讀取視訊的高度
int width = static_cast<int>(cap.get(CV_CAP_PROP_FRAME_WIDTH));//讀取視訊的寬度 //目前opencv對儲存視訊的支援格式不是很多,我嘗試了很多種,後面有格式和編碼方式的補充。我這裡使用的是.avi格式,編碼方式選擇XVID write.open(outVideo, CV_FOURCC('X','V','I','D'), fps, Size(width, height), true); while (!stop) { Mat frame; cap >> frame; blur(frame,frame,Size(3
,3),Point(-1,-1)); imshow("當前視訊", frame); write.write(frame); if (waitKey(30) >= 0) stop = true; } return 1; }

補充一些opencv可以支援的編碼格式

CV_FOURCC(‘P’, ‘I’, ‘M’, ‘1’) = MPEG-1 codec
CV_FOURCC(‘M’, ‘J’, ‘P’, ‘G’) = motion-jpeg codec
CV_FOURCC(‘M’, ‘P’, ‘4’, ‘2’) = MPEG-4.2 codec
CV_FOURCC(‘D’, ‘I’, ‘V’, ‘3’) = MPEG-4.3 codec
CV_FOURCC(‘D’, ‘I’, ‘V’, ‘X’) = MPEG-4 codec
CV_FOURCC(‘U’, ‘2’, ‘6’, ‘3’) = H263 codec
CV_FOURCC(‘I’, ‘2’, ‘6’, ‘3’) = H263I codec
CV_FOURCC(‘F’, ‘L’, ‘V’, ‘1’) = FLV1 codec
可以參考http://cnlearn.linksprite.com/?p=4141#.WK7YcVV96Uk

相關推薦

opencv學習筆記--圖片儲存視訊

將多幀圖片儲存為視訊 最近在使用opencv呼叫攝像頭處理資料,想把處理好的視訊幀儲存成一個完整的視訊,方便演示。查了很多資料,發現關於儲存成視訊的介紹很少,特地把自己整理好的資料跟大家分享一下,有什麼錯誤的地方煩請大家不吝賜教。 閒話就不扯了,直接上乾貨

圖片合成視訊

% function im2mov(picfrom,picend,picformat,aviname) %把圖片集合成一段avi視訊 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 施雲濤 2009年01月08日 % 使用avifile、addframe、getframe等函式實現 %

OpenCV學習筆記——載入、修改、儲存圖片(01)

一、載入影象(cv::imread): 1.imread功能是載入影象檔案成為一個Mat物件,其中第一個引數表示影象檔名稱,第二個引數表示載入的影象型別; 2.支援常見的三個引數值: 1)IMREAD_UNCHANGED( <0 )表示載入原圖,不做任何改變; 2)IMEREA

opencv學習筆記(九)捕獲攝像頭的視訊儲存成avi格式

        這個程式引用自下面的部落格,但是執行之後我發現視訊儲存之後,要利用前面提到的opencv播放視訊程式播放,不能用普通播放器播放——而且用前面的opencv程式播放時,影象是倒置的,需要我們在程式裡面改一下。在while(1)裡面加上一句     cvFlip

OpenCV學習筆記_縮放圖片

#include <cv.h> #include <highgui.h> using namespace std; IplImage* doPyrDown(IplImag

python + opencv 圖片儲存視訊--2016年更新

本程式碼針對的是python 2.7 + cv2, 將圖片從1-99儲存在img_root資料夾的.jpg圖片生成視訊。 import os import cv2 img_root = ''#這裡寫你的資料夾路徑,比如:/home/youname/dat

Python批量圖片拼接PDF

參考部落格:http://ilovin.me/2017-04-18/stitch-img-to-pdf/   算是技術雜談類的吧......最近碰到一個問題,想要把一個資料夾下的圖片拼接起來生成一個PDF檔案,並且該PDF檔案每頁都具有相同的A4大小。其實生成PDF這件事有許

MATLAB小程式:圖片儲存視訊和GIF(三)

1.picture into MOV clear;clc;close all; fig=figure; aviobj=VideoWriter('example.avi'); aviobj.Frame

opencv+vs2017實現視訊的讀取及播放,同時每一圖片儲存在指定檔案

#include "highgui.h" #include <iostream> using namespace std; int main(int argc, char** argv) { cvNamedWindow("視訊播放器", CV_WINDOW_A

OpenCV學習筆記(八):OpenCV使用imwrite儲存4通道圖片(僅對png有效)

轉載OpenCV官方文件中imwrite函式的說明,如何儲存4通道的影象。 轉載地址 https://www.docs.opencv.org/2.4.13/modules/highgui/doc/reading_and_writing_images_and_video.h

Python + OpenCV 學習筆記(一)>>> 影象的載入與儲存

影象屬性: 通道數目 高與寬 畫素資料 影象型別 顯示一張圖片: import cv2 as cv src = cv.imread("/home/pi/Desktop/apple.jpg") cv.namedWindow("input im

Python + OpenCV 學習筆記(六)>>>圖片切割、合併與填充

圖片切割: 利用python 的切片: def cut(m1): m2 = m1[50:100, 200:300] #對圖片第50到100行,200到300列區域進行切割 cv.imshow('cut', m2) m1[100:150, 400:500] = m

opencv學習筆記一:影象讀取與儲存

影象讀取函式:cv2.imread(影象路徑,標誌符) 影象路勁可以是絕對路徑和相對路徑; 識別符號有三種: cv2.IMREAD_COLOR (忽視透明度); cv2.IMREAD_GRAYSCALE(轉換成灰度影象讀取); cv2.IMREAD_UNCHANGE

opencv學習筆記(2)視訊檔案的讀取與儲存

main 函式輸入引數 argc、argv 的意義(參見[1]) 在學習筆記(1)中最後寫到:“在Debug完成後,應該把原始影象放到專案資料夾的 debug 資料夾中,使影象與exe程式在同一資料夾內,才能在執行程式時正確讀入並顯示影象。”其實是有誤的,影象不一定要與

iOS開發之opencv學習筆記四:使用feature2d識別圖片

使用過vuforia或者亮風臺的朋友應該知道,這兩個平臺對圖片的跟蹤的準備工作是很簡單的,只需要幾張樣本圖片就可以做了。 但是按照上篇的介紹,如果用CascadeClassifier進行物體跟蹤就需要非常非常多的樣本,那麼,要對圖片進行識別跟蹤就沒有像上面說的兩個平臺那樣

京東豬臉識別比賽資料預處理:用Python視訊每一提取儲存圖片

最近參加京東的豬臉識別比賽,訓練集是30個視訊,需要將視訊的每一幀提取出來儲存為圖片,存入對應的資料夾(分類標籤)。 本例是直接呼叫了cv2 模組中的 VideoCapture。一次執行,大概10分鐘,就能得到預處理後的分類圖片了,具體程式碼如下。

Photoshop CS6圖片合成GIF動態圖或視訊,並儲存匯出

(0)從Mini Bridge中拖入多張圖片(製作原材料),形成多個圖層。 (1)從“視窗”中開啟“時間軸” 從“時間軸”的選項中“從圖層建立幀”,並設定各幀的延遲時間。可點選播放進行預覽。 (2)儲存為GIF格式檔案。 從“檔案”選擇“儲存為Web所用格式”,命名並“儲存”即可

QT學習筆記 -->接受一資料並不是一次接受完,分次接受

一幀資料多次接受處理方法 在使用Qt自帶的串列埠QtSerialPort時。其傳送過來的資料需要進行接受,則需要連線一個相應的槽函式: //連線槽函式,當有串列埠資料來時,進入槽函式。 connect(serial,SIGNAL(readyR

opencv學習筆記】002之載入影象imread、修改影象cvtColor、顯示影象imshow及儲存影象imwrite

目錄 一、前言 二、影象基本操作 1、載入影象CV :: imread 2、建立視窗cv::namedWindow 3、顯示影象CV :: imshow 4、修改影象 (cv::cvtColor) 5、儲存影象 (cv::imwrite) 三、全部程式碼及結果展示

opencv擷取視訊儲存圖片

#include <stdio.h> #include <string> #include <iostream> #include <io.h> #include <fstream> #include <vec