用OpenCV從電腦攝像頭讀取視訊流
阿新 • • 發佈:2019-02-11
開啟攝像頭,建立了兩個視窗分別顯示彩色影象和二值化影象
#include <iostream> #include "opencv2/opencv.hpp" using namespace std; using namespace cv; int main() { //開啟攝像頭 VideoCapture cap(0); if (!cap.isOpened()){ cout << "error" << endl; return -1; } //建立視窗 namedWindow("彩色", 1); namedWindow("黑白", 1); Mat colorFrame,grayFrame; while (1){ //獲取視訊流 cap >> colorFrame; //0為上下翻轉,>0為左右翻轉,<0同時上下左右翻轉 flip(colorFrame, colorFrame, 1); //轉為灰度圖 cvtColor(colorFrame, grayFrame, CV_BGR2GRAY); //二值化處理 for (int i = 0; i < grayFrame.rows; i++){ for (int j = 0; j < grayFrame.cols; j++){ //獲取每個畫素點 if (grayFrame.at<uchar>(i, j) < 127){ grayFrame.at<uchar>(i, j) = 0; } else{ grayFrame.at<uchar>(i, j) = 255; } } } //在對應視窗顯示圖片 imshow("彩色", colorFrame); imshow("黑白", grayFrame); if (waitKey(30) >= 0) break; } return 0; }