2016年3月15日 星期二

Set or Get Property from Camera using OpenCV

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 影像解析度(高)
- CV_CAP_PROP_FPS 每秒輸出幀數
- CV_CAP_PROP_FOURCC 壓縮4碼
- CV_CAP_PROP_FRAME_COUNT 影片總幀數
- CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .
- CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.
- CV_CAP_PROP_BRIGHTNESS 影像亮度
- CV_CAP_PROP_CONTRAST 影像對比度
- CV_CAP_PROP_SATURATION 影像飽和度
- CV_CAP_PROP_HUE 影像色度
- CV_CAP_PROP_GAIN 影像增益
- CV_CAP_PROP_EXPOSURE 影像曝光度
- CV_CAP_PROP_CONVERT_RGB 影像是否被轉成RGB格式
- CV_CAP_PROP_WHITE_BALANCE 目前不支援白平衡
- CV_CAP_PROP_RECTIFICATION stereo cameras

範例環境:
- Qt Creator
- Windows 7
- MinGW 4.8.2
- OpenCV 2.4.8

#include < iostream >
#include < opencv2 / opencv.hpp >

using namespace std;
int main() {
    cv::VideoCapture camera;
    cv::Mat srcImg;
    camera.open(1);
    // 設定0為預設視訊裝置,1~N以上表示第N個視訊裝置
    if (!camera.isOpened()) {
        return 0;
    }
    camera.set(CV_CAP_PROP_EXPOSURE, -8);
    std::cout << "Exposure : " << camera.get(CV_CAP_PROP_EXPOSURE) << std::endl;
    for (;;)
    {
        camera >> srcImg;
        cv::imshow("Show Windows", srcImg);
        cv::waitKey(30);
    }
    return 0;
}

更多OpenCV文章請參考:OpenCV Tutorial (學習筆記)

0 意見:

張貼留言