在 OpenWrt 系統已經測試了奧尼(Aoni)百腦通相影 HD720P 高清網絡攝像頭(Webcam),但影像是從 TP-Link TL-WR703N MJPG-Streamer 程式通過 http協議傳輸到瀏覽器(Web Browser),並顯示串流視頻(Streaming Video),筆者下一步希望將串流視頻作圖像處理,所以需要使用到電腦視覺庫,便可以作識別和圖像處理,現在比較流行的電腦視覺庫有 OpenCV(Open Source Computer Vision Library)、AForge、Emgu CV、FFmpeg 等等,筆者會先使用 OpenCV 電腦視覺庫。
OpenCV IPCam Capture 程式 |
1‧筆者會使用 Visual Studio 2010 並且安裝 OpenCV 2.4 電腦視覺庫,用 OpenCV 對路由器傳輸作圖像處理,首先要從路由器取得串流視頻或圖像,OpenCV 裏的 VideoCapture 類本身就能從網頁獲取圖像,不斷把採集的圖像顯示在屏幕上。
C++ IPCam
Capture 程式:
// 06_opencv_ipcam.cpp : 定義主控台應用程式的進入點。
// Test OpenCV and IP Camera to Capture Video from TL-WR703N OpenWrt
#include "stdafx.h"
#include <highgui.h>
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
using namespace std;
using namespace cv;
/** @function main */
int main(int argc, char** argv)
{
Mat src;
cv::VideoCapture vcap; //Capture的宣告
// 創造虛擬檔案和 IP 地址
const string address =
"http://192.168.1.1:8080/?action=stream?dummy=param.mjpg";
if (!vcap.open(address)) //確認Capture能開啓
{
cout <<
"Error Opening Video Stream" << endl;
return -1;
}
cout << "Stream Opened"
<< endl;
while (1)
{
vcap >>
src;
// Write your
code here
// Show your
results
namedWindow("Cam",
CV_WINDOW_AUTOSIZE);
imshow("Cam", src);
// Press ESC to
exit
if (waitKey(33)
== 27) //避免CPU負荷,給點Delay時間
break;
}
return 0;
}
|
用 IplImage 函數的 IPCam Capture 程式:
// 06_opencv_ipcam.cpp : 定義主控台應用程式的進入點。
// Test OpenCV and IP Camera to Capture Video from TL-WR703N OpenWrt
#include "stdafx.h"
#include <highgui.h>
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
using namespace std;
using namespace cv;
/** @function main */
int main(int argc, char** argv)
{
CvCapture* capture =
cvCaptureFromFile("http://192.168.1.1:8080/?action=stream?dummy=param.mjpg");
IplImage* frame; // IplImage的宣告
cvNamedWindow("frame");
while(frame =
cvQueryFrame(capture)) //確認Capture能開啓
{
cvShowImage("frame",frame);
//顯示Capture
cvWaitKey(33); //避免CPU負荷,給點Delay時間
}
cvReleaseCapture(&capture);
cvDestroyAllWindows();
return 0;
}
|
用 IplImage 函數的 OpenCV IPCam Capture 程式 |
操作環境:Windows Visual Studio 2010 C++/CLI + OpenCV 2.4.8
相關網址:
※ 在 Windows XP Visual Studio 2010 安裝 OpenCV 2.4
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 第一個程式
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 使用 WebCam
※ 在 Windows XP Visual Studio 2010 安裝使用 FFmpeg 函數庫
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 使用 WebCam
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 顯示 IPCam 串流視頻
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 導入屬性工作表文件檔
※ 在 Windows XP Visual Studio 2010 使用 Windows From OpenCV 2.4 配置
※ 在 OpenCV 2.4 的 IplImage 資料結構
※ OpenCV 2.4 的坎尼圖像邊緣檢測(Canny Edge Detection) – Canny 函數
※ OpenCV 2.4 的霍夫直線偵測轉換 – HoughLines 函數
※ OpenCV 2.4 的霍夫直線偵測轉換 – HoughLinesP 函數
※ OpenCV 2.4 的人臉偵測(Face Detection)– cvHaarDetectObjects 函數
※ OpenCV 2.4 的物件偵測(Object Detection)– cvHoughCircles 函數
※ OpenCV 2.4 的物件追蹤(Object Tracking)– cvMoments 函數
2015 年 9月 6日 天氣報告
氣溫:28.5度 @ 20:30
相對濕度:百分之 80%
天氣:天色大致良好
沒有留言:
張貼留言