回答
您可以使用Windows Image Acquisition (WIA)或/和DirectShow。另一個不錯的選擇是Microsoft Media Foundation(關於capturing video的章節)。
請注意,這是繁瑣的apis,這使得這不是一件容易的事,你可能會更好地使用OpenCV。
至於網絡部分,這取決於您的設計和偏好。
我只是完成了一個類似的任務,我花了好幾天的時間看着各種工具/庫。
DirectShow是Windows的默認API,但它對於簡單任務來說很複雜。 OpenCV在其設備支持方面滯後,videoInput(插件/插件)改進了OpenCV。
我能得到一個簡單的顯示和運行:
http://www.aishack.in/2010/03/capturing-images-with-directx/
使用videoInput庫和OpenCV:
http://muonics.net/school/spring05/videoInput/
OpenCV的可能看起來複雜,但作爲第一鏈接僅顯示其一頁代碼:
#include "stdafx.h"
#include "videoInput.h"
#include "cv.h"
#include "highgui.h"
int main()
{
videoInput VI;
int numDevices = VI.listDevices();
int device1= 0;
VI.setupDevice(device1);
int width = VI.getWidth(device1);
int height = VI.getHeight(device1);
IplImage* image= cvCreateImage(cvSize(width, height), 8, 3);
unsigned char* yourBuffer = new unsigned char[VI.getSize(device1)];
cvNamedWindow("test");
while(1)
{
VI.getPixels(device1, yourBuffer, false, false);
image->imageData = (char*)yourBuffer;
cvConvertImage(image, image, CV_CVTIMG_FLIP);
cvShowImage("test", image);
if(cvWaitKey(15)==27) break;
}
VI.stopDevice(device1);
cvDestroyWindow("test");
cvReleaseImage(&image);
return 0;
}
videoInput.h是您啓動並運行所需的文檔,您可以從中閱讀OpenCV文檔以獲取更多高級功能。在上面的例子中,你會想要拍攝「圖像」,並以某種方式通過網絡傳播。這取決於您的通信協議。
的Windows典型的方法:使用DirectShow從凸輪捕捉視頻,使用RTP protocol(基於UDP)的實時流,也許與live555 library幫助。
DirectShow方式: 實現將音頻/視頻流式傳輸到網絡的源渲染過濾器,以及從網絡接收音頻/視頻的源過濾器。數據流:
web-cam source filter -> your renderer filter -> [network] -> your source filter -> video renderer filter
-> audio renderer filter
Skype使用DirectShow捕獲和DirectX進行繪製。他們使用proprietery網絡協議的安全(我懷疑你需要這樣的東西)
- 1. 從網絡攝像頭捕捉圖像
- 2. 從網絡攝像頭捕捉圖像
- 3. 網絡攝像頭捕捉
- 4. 有沒有辦法從網絡攝像頭捕捉圖像?
- 5. 面部捕捉從網絡攝像頭
- 6. 使用圖片框從網絡攝像頭捕捉圖像
- 7. 從網絡攝像頭捕獲圖像
- 8. 需要從網絡攝像頭捕捉圖像
- 9. 如何在python2中從網絡攝像頭捕捉圖像?
- 10. 從網絡攝像頭捕捉靜態圖像(DirectSHowLib,VB.NET)
- 11. 從網絡攝像頭「靜止針」捕捉圖像?
- 12. FMJ網絡攝像頭捕捉示例
- 13. C#.net - 網絡攝像頭圖像捕捉
- 14. 從網絡攝像頭捕捉單張圖片
- 15. 如何從.Net世界的網站捕捉攝像頭圖像?
- 16. 從網絡攝像頭和商店捕獲圖像
- 17. 網絡攝像頭捕捉網絡應用程序
- 18. 你能捕捉從網絡攝像頭的圖像在iphone上的iPhone?
- 19. 從VC++的網絡攝像頭捕捉視頻
- 20. 從網絡攝像頭捕獲圖像,並將其發送到手機
- 21. 如何在linux上從網絡攝像頭捕捉靜態圖像
- 22. 同步屏幕錄像(ffmpeg)和從網絡攝像頭捕捉(OpenCV)
- 23. 慢速攝像頭捕捉
- 24. 最好的DirectShow方法從網絡攝像頭預覽捕捉圖像? SampleGrabber已棄用
- 25. Python網絡攝像頭Http流媒體和圖像捕獲
- 26. 來自網絡攝像頭的可可捕捉框架
- 27. 捕捉攝像頭圖像始終在最高分辨率!
- 28. 從iOS攝像頭捕捉視頻
- 29. 當通過網絡攝像頭檢測到臉部時自動捕捉圖像
- 30. 使用QCView和iSight攝像頭捕捉到的圖像
那麼你推薦我使用OpenCV?在你看來,methos確實使用了像MSN和Skype這樣的程序?感謝:) – xRobot 2011-02-04 11:05:53