Skip to content

Instantly share code, notes, and snippets.

View MarcWang's full-sized avatar

MarcWang MarcWang

  • 吾微而智
View GitHub Profile

Receiving RTSP stream using FFMPEG and OpenCV

如果想要用OpenCV接收IPcam的串流來源,其中一種方法可以透過FFMPEG的Library實現。

首先電腦必須安裝FFMPEG

以下是Sample Code:

#include "stdafx.h"

Get a list of Camera Devices using OpenCV

使用方式為依序輸入每一個device,直到回傳 null or false代表找不到裝置為止

C API

CvCapture *cap;
int device_counts = 0;
while ( true ) {
 cap = cvCreateCameraCapture( device_counts++ );

Skin Color Detection using OpenCV

本文提供HSV與YCrCb兩種顏色空間的膚色偵測流程

膚色偵測的應用:

  • Face Detection and Tracking
  • Hand Detection and Tracking
  • Pornographic Filter

Edge Detection Algorithm using OpenCV

評估演算法的依據

  • 雜訊誤判為邊緣(Edge)
  • 沒找出真正邊緣(Edge)

各種邊緣偵測方式

  • Soble
  • Laplacian
  • Canny

Color Conversion using OpenCV

注意OpenCV讀取影像的影像格式是BGR而不是RGB,所以後續不管是要使用OpenCV提供的API轉換色彩空間或者自行取值運算都要特別注意。以下我們會提供RGB與YCrCb、HSV、HSL、CIE-Lab、XYZ等色彩轉換的公是與方法。

cv::Mat srcImg = cv::imread("lena.jpg", CV_LOAD_IMAGE_COLOR);

//BGR to Gray Color Space
cv::Mat bgr2grayImg;

Set or Get Property from Camera using OpenCV

欲想對視訊操作解析度、白平衡、FPS等可透過VideoCapture.set()實現。

參數

  • CV_CAP_PROP_POS_MSEC 影片播放毫秒
  • CV_CAP_PROP_POS_FRAMES 影片播放幀數
  • CV_CAP_PROP_POS_AVI_RATIO 影片播放百分比
  • CV_CAP_PROP_FRAME_WIDTH 影像解析度(寬)
  • CV_CAP_PROP_FRAME_HEIGHT 影像解析度(高)

How to install OpenCV 3.1 on Ubuntu 14.04 64bits

Update latest packages and installed

$ sudo apt-get update
$ sudo apt-get upgrade

apt-get update - 更新最新的套件資訊 apt-get upgrade - 更新套件

Connected Component Labeling using OpenCV

一般使用計算連通物件的方法分別為Two-Pass及Seed-Filling這兩種,可以選擇使用4連通(4-connected)或者8連通(8-connected)去串連物件。

在OpenCV還沒有提供connectedComponentsAPI之前大家會使用findcontours去計算連通物件,有興趣可以參考這篇Find Contours using OpenCV

Two-Pass Algorithm with 4-connected

第一次檢查條件

下載 (Download)