1. 程式人生 > >opencv學習筆記(九)捕獲攝像頭的視訊並儲存成avi格式

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

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

    cvFlip(frame, NULL, 0 );//翻轉影象 

#include "cv.h"  

#include "highgui.h"  

#include "iostream"  

using namespace std;  

int main(int argc, char **argv[])

{  

 CvCapture *cap = cvCreateCameraCapture(0);//初始化相機捕獲的指標  

 if (!cap)  

 {  

  cout<<"create camera capture error..."<<endl;  

  system("pause");  

  exit(-1);  

 }  

 IplImage *tempImg = cvQueryFrame(cap);  

 double fps = 20;  

 CvSize size = cvSize(  

  (int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH),  

  (int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT)  

  );  

 CvVideoWriter *writer = cvCreateVideoWriter("test.avi", CV_FOURCC('X','V','I','D'), fps, size);  

 IplImage *img = cvCreateImage(size, 8, 3);  

 while((tempImg=cvQueryFrame(cap)) != NULL)  

 {  

  cvCopy(tempImg, img);  

  if (img->origin == IPL_ORIGIN_TL)  

  {  

   cvFlip(img, img);  

  }  

  cvWriteFrame(writer, img);  

 }  

 cvReleaseImage(&img);  

 cvReleaseCapture(&cap);  

 cvReleaseVideoWriter(&writer);  

 system("pause");  

 return 0;  

}  

9.1 cvQueryFrame() 

從攝像頭或者檔案中抓取並返回一幀

IplImage* cvQueryFrame( CvCapture* capture );

capture

視訊獲取結構。

函式cvQueryFrame從攝像頭或者檔案中抓取一幀,然後解壓並返回這一幀。這個函式僅僅是函式cvGrabFrame和函式cvRetrieveFrame在一起呼叫的組合。返回的影象不可以被使用者釋放或者修改。

9.2 cvReleaseCapture()

CvCapture結構使用結束後,可以呼叫cvReleaseCapture()來釋放CvCapture結構。與OpenCV中大部分釋放函式類似,這個函式讀入一個指向capture結構的指標。

      void cvReleaseCapture(CvCapture** capture);


相關推薦

opencv學習筆記捕獲攝像頭視訊儲存avi格式

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

Opencv學習筆記光流法

    原創文章,轉貼請註明:http://blog.csdn.net/crzy_sparrow/article/details/7407604 本文目錄:       一.基於特徵點的目標跟蹤的一般方法       二.光流法       三.opencv中的光流法函式

python OpenCV學習筆記:圖片的幾何變形

縮放 import numpy as np import cv2 as cv img = cv.imread('test.jpg') res = cv.resize(img, None, fx=2, fy=2, interpolation=

OpenCV學習筆記9利用MFC的Picture控制元件顯示影象+播放視訊捕獲攝像頭畫面

P.S.:後面又添加了播放視訊和捕獲攝像頭畫面的功能,其中播放視訊的功能只有 'Play' 和 'Stop',不能實現暫停,《A step-by-step guide to the use of Microsoft Visual C++ and the Intel Ope

TypeScript學習筆記:裝飾器Decorators

標註 時裝 als cal () 操作 enume 筆記 文檔 裝飾器簡介 裝飾器(Decorators)為我們在類的聲明及成員上通過元編程語法添加標註提供了一種方式。 需要註意的是:裝飾器是一項實驗性特性,在未來的版本中可能會發生改變。 若要啟用實驗性的裝飾器特性

如鵬網學習筆記JavaScript

計算機編程 lean 有效 拼接字符串 {} efault 含義 函數重載 cas JavaScript筆記 一、JavaScript簡介   1,JavaScript是一種計算機編程語言,可以像等其他編程語言那樣定義變量,執行循環等。   2,JavaScript代碼主

Python學習筆記

port 驗證方式 模塊 install name 第三方模塊 rom pip private 一、Python模塊的引入   import sys #可以通過模塊名以及import關鍵字導入模塊 二、if __name__ == "__main__"   當Python在

深度學習筆記感受野計算

lds 時有 輸入 計算 ret name %d have imsi 1 感受野的概念   在卷積神經網絡中,感受野的定義是 卷積神經網絡每一層輸出的特征圖(feature map)上的像素點在原始圖像上映射的區域大小。一般感受野大小是目標大小的兩倍左右最合適!      

java學習筆記:Java 流(Stream)、文件(File)和IO

用戶輸入 public 文件內容 輸出流 out 單個 java 我們 ready Java 的控制臺輸入由 System.in 完成。 為了獲得一個綁定到控制臺的字符流,你可以把 System.in 包裝在一個 BufferedReader 對象中來創建一個字符流。需要i

學習筆記——數據庫存儲結構:頁、聚集索引、非聚集索引

分享 style end 宋體 blog lec storage rop cas 1、頁 SQL Server用8KB 的頁來存儲數據,並且在SQL Server裏磁盤 I/O 操作在頁級執行。也就是說,SQL Server 讀取或寫入所有數據頁。頁有不同的類型,像

Elasticsearch學習筆記partial update

cse adding 操作 nbsp 進行 樂觀 gin clas 比較 一、什麽是partial update? PUT /index/type/id,創建文檔&替換文檔,就是一樣的語法 一般對應到應用程序中,每次的執行流程基本是這樣的: (1)應

python學習筆記之語句1

如果 red 開始 就是 整除 for 循環 個數 hello 基本 python學習筆記(九)之語句1printpython2中,print是一個語句,python3中它是一個函數。實例1: >> print "hello,world!"

day5-Python學習筆記json數據類型

class json mps pen log imp color python 文件 import json#json串就是字符串。d = { ‘car‘:{‘color‘:‘red‘,‘price‘:100,‘count‘:50}, ‘挨糞叉‘:{‘color‘:

《Qt5 開發與實例第三版學習筆記

nal inf lin exc ken right item vbo ott 1 // 3.4 基本布局(QLayout) 2 //dialog.h 3 #ifndef DIALOG_H 4 #define DIALOG_H 5 6 #incl

Linux學習筆記find、文件名後綴

行為 指定文件類型 type install 需要 所有 如果 查找文件 size 一、linux中查找文件有很多種法,例如之前用過的which、whereis,此外還有locate 如果沒有安裝locate ,則需要運行 yum install -y mlocate

kettle學習筆記——子轉換、集群與變量

bec param TP 一個 字段 暴露 空格 參數用法 用法 一、概述   kettle中3個重要的步驟:     子轉換/映射       在轉換裏調用一個子轉換,便於封裝和重用。     集群       集群模式     變量和參數       變量和參數的用法

WPF 學習筆記

toolbar 添加 mas eight click top dock horizon ima 一、菜單的創建 <Window x:Class="WpfApplication6.MainWindow" xmlns="http://schemas

OpenCV學習筆記31KAZE 演算法原理與原始碼分析KAZE的原始碼優化及與SIFT的比較

  KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構建 3.  Op

OpenCV學習筆記30KAZE 演算法原理與原始碼分析KAZE特徵的效能分析與比較

      KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構

OpenCv學習筆記—cv::Mat學習

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!