OpenCV程式設計介紹(2)
来源:互联网 发布:java 500错误原因 编辑:程序博客网 时间:2024/06/05 18:10
转自:http://yester-place.blogspot.com/2008/06/opencv2.html
OpenCV程式設計介紹(2)
視訊的使用也是OpenCV的基本功能之一,它可以做連續性的影像處理,比capCreateCaptureWindow()這個函式好用多了,capCreateCaptureWindow()在"vfw.h"裡,只能在MicroSoft的Visual C++及 BorlandC++builder使用,Dev-C++4.9.9.2不提供此函式,當然啦,OpenCV對於視訊的處理提供了比capCreateCaptureWindow()更強大的功能.
程式碼部份
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
int main()
{
CvCapture *capture;
IplImage *frame;
capture =cvCaptureFromCAM(0) ;
cvNamedWindow("Webcam",0);
while(true)
{
frame = cvQueryFrame(capture);
cvShowImage("Webcam",frame);
if(cvWaitKey(10)>=0)
{
break;
}
}
cvReleaseCapture(&
capture);
cvDestroyWindow("Webcam");
}
裡面使用到CvCapture及IplImage兩個資料結構,CvCapture是一個Interface的資料結構,為一個資料結構的雛形,無任何的變數型別存在,由cvCaptureFromCAM(0)來選定Webcam裝置,cvCaptureFromCAM(0)的0代表自動偵測視訊裝置,如果有兩台以上的Webcam則就用連續兩個cvCaptureFromCAM(0)函式來擷取,接著,就用while(true)的無窮回圈來捕捉連續影像的圖形畫面,cvQueryFrame()則用來擷取每秒顯示出來的frame這裡由cvWaitKey(10)來控制擷取時間,每延遲10毫秒捕捉一次視訊畫面,cvWaitKey()為鍵盤事件,每超過10毫秒則會回傳-1,因此,畫面會因cvWaitKey(10)而延遲10毫秒,接著由無窮回圈來繼續播放,當鍵盤事件發生的時候則會跳出whlie的無窮回圈.接著就把CvCapture資料結構及視窗介面資料結構做記憶體的釋放.
執行結果:
- OpenCV程式設計介紹(2)
- OpenCV程式設計介紹(1)
- 《Windows程式设计》笔记2
- zt:delphi入門級資料: 2 基本windows程式
- MATLAB 程式设计与应用(2)
- WINDOWS程式设计--动态链接库(2)
- Android程式编写及调试新手入门-2
- coursera《计算机程式设计》学习笔记2
- OpenCV响应鼠标函数cvSetMouseCallback()和其副程式onMouse()的使用(OpenCV2.4.5)
- Linux程式设计-11.Shell Script(bash)--(2)教学例
- 简单的 Winsock 应用程式设计(2)
- Linux设备驱动程式学习(2)-调试技术
- iPhone 程式设计入门(2)认识一下 MacOS
- Spring2.5配置HIBERNATE3.2编程式事务
- Linux设备驱动程式学习(2)-调试技术
- 程式執行參數處理函式庫:Boost Program Options(2/N)
- Sublime Text 2 - 好用的前端程式編輯器介绍
- 单车程式
- OSR文档:NT中的异步过程调用(APC)
- 又一期CMS系统技能考试
- IFormatter 提供将序列化对象格式化的功能。
- PPT演讲者视图
- 两表关联进行更新--满足A条件一种更新,不满足A条件是另外一种更新
- OpenCV程式設計介紹(2)
- 修改文件权限命令chmod的用法
- DirectX 3D 基本框架(五)
- js 取控件坐标
- 几种js实现的动态多文件上传
- Strcpy和Strncpy的区别-
- html:text
- java 文件操作
- 郭为透露神州信息并购条件:利润规模千万以上