OpenCV實現讀取攝像頭做實時邊緣檢測

下面是使用OpenCV實現讀取攝像頭並做實時邊緣檢測(灰度轉換、高斯模糊、Canny邊緣檢測)的事例代碼。

//包含頭文件
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc/imgproc.hpp>  
#include <opencv2/core/core.hpp>  

//使用命名空間
using namespace cv;

int main()
{
    VideoCapture cap(0);//VideoCapture類用法:1.VideoCapture(const string& filename)打開視頻文件;2.VideoCapture(int device)打開設備。
    if (!cap.isOpened())//檢測VideoCapture類是否打開成功
    {
        return -1;//打開失敗返回值
    }

    //定義變量類
    Mat mFrame;
    Mat mEdges;

    //定義控制變量
    bool bStop = false;//控制變量初始化
    while (!bStop)//開始
    {
        cap >> mFrame;

        cvtColor(mFrame, mEdges, CV_BGR2GRAY);//圖像轉換爲灰度
        GaussianBlur(mEdges, mEdges, Size(7, 7), 1.5, 1.5);//高斯濾波
        Canny(mEdges, mEdges, 0, 30, 3);//邊緣檢測

        imshow("camera", mEdges);//顯示

        if (waitKey(30) >= 0)//檢測用戶按鍵
        {
            bStop = true;//更改控制變量
        }
    }
    return 0;//結束返回
}
發佈了33 篇原創文章 · 獲贊 15 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章