色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenCV學習總結之C++版

jf_78858299 ? 來源:鬼才薛定諤 ? 作者: CatalinChao ? 2023-02-07 16:03 ? 次閱讀

本文中代碼所采用的是OpenCV4.6.0,采用Cmake來管理工程,mac系統

OpenCV簡介

OpenCV是“開源計算機視覺庫”,「Open Sourec Computer Vision Library」,是一個基于開源發行的跨平臺計算機視覺庫,包含了許多圖像處理和計算機視覺方面的通用算法,這里主要學習其api的應用。

快速上手OpenCV圖像處理

  • 第一個程序:圖像顯示,代碼如下
//
// Created by on 2022/11/9.
//
#include     //相關頭文件
using namespace std;


int main() {
    cv::Mat srcImage = cv::imread("../dog.jpg"); //載入圖像
    cv::imshow("[原始圖]", srcImage);  //顯示圖像
    cv::waitKey(0); //等待用戶任意鍵按下才終止窗口
    return 0;

}
  • 第二個程序:圖像腐蝕

腐蝕是最基本的形態學運算之一:就是用圖像中的暗色部分“腐蝕”掉圖像中的高亮部分

部分。

顯示效果如上圖

代碼如下:

//
// Created by  on 2022/11/9.
//
#include      //模塊頭文件
#include       //圖像處理頭文件
//using namespace cv;    //cv命名空間

int main() {
//載入原圖,保存在Mat矩陣類對象中
    cv::Mat srcImage = cv::imread("../cat.jpeg");
//顯示原圖
    cv::imshow("faster",srcImage);
//進行腐蝕操作
    cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT,cv::Size(15, 15));
    cv::Mat dstImage;
    cv::erode(srcImage, dstImage, element);
//顯示效果圖
    cv::imshow("laster", dstImage);
    cv::waitKey(0);
return 0;
}

getStructuringElement函數返回一個指定形狀和尺寸的內核矩陣,然后調用erode函數進行圖像腐蝕操作。

  • 第三個程序:圖像模糊
    對圖像進行均值濾波操作,主要使用到blur函數

代碼如下:

//
// Created by on 2022/11/9.
//

#include 
#include 

//using namespace cv;

int main() {
    cv::Mat srcImage = cv::imread("../cat.jpeg");
    cv::imshow("src picture", srcImage);

//進行均值濾波操作
    cv::Mat dstImage;
    cv::blur(srcImage, dstImage, cv::Size(7, 7));

//顯示效果圖
    cv::imshow("last picture", dstImage);
    cv::waitKey(0);
return 0;
}

先載入圖像,并將其轉成灰度圖,再用blur函數進行圖像模糊以降噪,然后用canny函數進行邊緣檢測,最后進行顯示

代碼如下:

//
// Created by  on 2022/11/9.
//

#include 
#include 

//using namespace std;

int main() {
    cv::Mat srcImage = cv::imread("../cat.jpeg");
    cv::imshow("canny test", srcImage);  //顯示原始圖
//將原始圖像轉化為灰度圖像
    cv::Mat dstImage, edge, grayImage;
//創建與原圖同類型和大小的矩陣 dst
    dstImage.create(srcImage.size(), srcImage.type());

//將原圖像轉換為灰度圖像
    cv::cvtColor(srcImage, grayImage, cv::COLOR_BGR2GRAY);

//先使用3x3的內核矩陣來降噪
    cv::blur(grayImage, edge, cv::Size(3, 3));

//運行Canny 算子
    cv::Canny(edge, edge, 3, 9, 3);

//顯示效果圖
    cv::imshow("edge test", edge);
    cv::waitKey(0);
return 0;
}
  • 第五個程序:讀取并播放視頻
    使用VideoCapture從視頻文件或攝像頭捕獲視頻并顯示出來

有兩種寫法,分別是:

  1. 先實例化,再初始化

VideoCapture video; video.open("one.mp4");

  1. 在實例化的同時進行初始化

VideoCapture video("one.mp4");

視頻讀入到VideoCapture類對象之后,緊接著可以用一個循環將每一幀顯示出來,相關代碼如下:

等)時,在頭部直接指定,如:```javascript,如下:

//
// Created by 方 on 2022/11/9.
//
#include

using namespace cv;

int main() {
//1. 讀入視頻
VideoCapture video("../one.mov");

//2. 循環顯示每一幀
while(1) {
        Mat frame; //定義一個Mat對象,用來存儲每一幀圖像
        video>>frame; //讀取當前幀
        imshow("read_video", frame); //顯示當前幀
        waitKey(30); //延時30ms

    }
return 0;
}
  • 第六個程序:調用攝像頭采集圖像

只需將上述代碼中的視頻文件名“one.mov”換成0就行,即VideoCapture(0)表示調用攝像頭而不是從文件中讀取視頻, 注意不要添加""

結合攝像頭調用實例程序來配合canny邊緣檢測,得到canny邊緣檢測并高斯模糊后的攝像頭采集視頻,代碼如下:

//
// Created by  on 2022/11/9.
//
#include 

int main() {
    //從攝像頭讀入視頻
    cv::VideoCapture video(0);
    cv::Mat edge;

    //循環顯示每一幀
    while(1) {
        //1. 讀入圖像
        cv::Mat frame;  //定義一個Mat變量,用于存儲每一幀的圖像
        video >> frame;     //讀取當前幀

        //2. 將原圖轉換成灰度圖
        cv::cvtColor(frame, edge, cv::COLOR_BGR2GRAY);

        //3. 使用3x3的內核矩陣來進行降噪 2x3+1=7
        cv::blur(edge, edge, cv::Size(7,7)); //進行模糊

        //4. 進行canny邊緣檢測并顯示
        cv::Canny(edge, edge, 0, 30, 3);
        cv::imshow("the video after canny", edge); //顯示經過處理后的當前幀
        if(cv::waitKey(30) >= 0)
            break;   //延時30ms
    }
    return 0;
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像處理
    +關注

    關注

    27

    文章

    1299

    瀏覽量

    56837
  • API
    API
    +關注

    關注

    2

    文章

    1509

    瀏覽量

    62262
  • 開源
    +關注

    關注

    3

    文章

    3394

    瀏覽量

    42630
  • OpenCV
    +關注

    關注

    31

    文章

    635

    瀏覽量

    41453
收藏 人收藏

    評論

    相關推薦

    關于C++模板總結

    大家好,今天給大家分享一篇關于 C++ 模板總結概述。
    發表于 09-19 11:55 ?535次閱讀

    C++STL算法(二)

    C++STL算法(二)
    的頭像 發表于 07-18 14:49 ?1093次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b>STL算法(二)

    C++文件操作

    C++文件操作
    的頭像 發表于 07-21 10:52 ?1139次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b>文件操作

    OpenCV C++程序編譯與演示

    1、在JetsonNano上編譯OpenCV源碼與OpenCV C++ YOLOv5程序演示  編譯OpenCV最新4.5.x版本  Jetson Nano自帶的
    發表于 11-10 16:42

    CC++學習過程總結

      總是被同學們問到,如何學習CC++才不茫然,才不是亂學,想了一下,這里給出一個總的回復。   一家之言,歡迎拍磚哈。   1、可以考慮先學習
    發表于 09-10 11:42 ?1248次閱讀

    OpenCV2.3的C++速查表免費下載

    本文檔的主要內容詳細介紹的是OpenCV2.3的C++速查表免費下載。
    發表于 11-06 17:48 ?4次下載

    C++指針的學習建議

     一。對于眾多人提出的c/c++中指針難學的問題做個總結
    發表于 11-07 17:13 ?8次下載
    <b class='flag-5'>C++</b>指針的<b class='flag-5'>學習</b>建議

    如何使用Borland C++ Builder6.0來開發OpenCV的程序

    本文檔的主要內容詳細介紹的是如何使用Borland C++ Builder6.0來開發OpenCV的程序。
    發表于 05-26 17:32 ?14次下載
    如何使用Borland <b class='flag-5'>C++</b> Builder6.0來開發<b class='flag-5'>OpenCV</b>的程序

    C++中類的繼承訪問級別學習總結(二)

    上一篇文章我們介紹了c++中類的繼承學習總結;今天我們繼續來分享c++中類的繼承中的訪問級別的學習總結
    的頭像 發表于 12-24 16:10 ?771次閱讀

    C++重載函數學習總結

    函數重載是c++c的一個重要升級;函數重載通過參數列表區分不同的同名函數;extern關鍵字能夠實現cc++的相互調用;編譯方式決定符號表中的函數名的最終目標名
    的頭像 發表于 12-24 17:10 ?820次閱讀

    C++靜態成員變量和靜態成員函數學習總結

    今天繼續分享c++的文章,學習還是不能落下,flag未完成,任務艱巨,好好學習。
    的頭像 發表于 12-24 17:12 ?472次閱讀

    Linux C/C++ 學習路線

    一、秋招 Linux C/C++ offer 情況二、Linux C/C++ 方向的一些思考三、計算機基礎知識的梳理四、C++ 方向的深入
    發表于 11-06 19:36 ?14次下載
    Linux <b class='flag-5'>C</b>/<b class='flag-5'>C++</b> <b class='flag-5'>學習</b>路線

    運用JNI連結OpenCV開發C++并打包成aar lib的使用教學

    本身是作影像視覺相關的工作,多數時候都使用 Python 作為開發語言,但OpenCV 本身是C++開發,學 C++ 應該有幫助。
    的頭像 發表于 08-15 09:24 ?1664次閱讀

    C++學習筆記c++的基本認識

    自這篇文章我們即將開始C++的奇幻之旅,其內容主要是讀C++ Primer的總結和筆記,有興趣可以找原版書看看,對于學習C++還是有很大幫助
    的頭像 發表于 03-17 13:57 ?757次閱讀

    OpenCV圖像識別C++代碼

    的頭文件 在您的C++代碼中,包含以下必要的頭文件: # include # include # include # include # include # include # include 讀取圖像
    的頭像 發表于 07-16 10:42 ?2299次閱讀
    主站蜘蛛池模板: 午夜伦理在线观看| 亚洲三级黄色| 中文字幕久精品视频在线观看| 国产精品午夜小视频观看| 热久久伊大人香蕉网老师| AV福利无码亚洲网站麻豆| 欧美free嫩交hd| xxx粗大长欧美| 强上轮流内射高NP男男| 白嫩美女直冒白浆| 日日射夜夜干夜夜插在线播放| 成人综合在线观看| 世界上第一个得抑郁症的人是谁| 久久免费精品国产72精品剧情| 一区二区三区国产亚洲网站| 久久婷婷国产五月综合色啪最新| 最近2018年手机中文字幕| 内射白浆一区二区在线观看| 爱人 qvod| 翁公吮她的花蒂和奶水| 极品少妇高潮啪啪AV无码| 依人在线观看| 欧美精品中文字幕亚洲专区| 超碰久久国产vs| 无码AV动漫精品一区二区免费| 亚洲免费观看视频| 就去色一色| 被滋润的艳妇疯狂呻吟白洁老七| 帅哥操帅哥| 久久精品国产亚洲AV热无遮挡| 97综合久久| 日本理伦片午夜理伦片| 国产精品视频国产永久视频| 亚洲午夜电影| 欧美精品久久久久久久久大尺度| 高清不卡伦理电影在线观看| 亚洲AV无码乱码A片无码蜜桃| 九九在线免费视频| xnxx18美女| 亚洲精品福利在线| 美女快播第一网|