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