91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++ OpenCV如何提取水平和垂直線

發布時間:2021-11-26 10:41:22 來源:億速云 閱讀:254 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關C++ OpenCV如何提取水平和垂直線,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

原理方法

圖像形態學操作時候,可以通過自定義的結構元素實惠結構元素對輸入圖像一些對象敏感,另外一些不敏感,這樣就會讓敏感的對象改變而不敏感的對象保留輸出,通過使用兩個最基本的形態學操作--膨脹和腐蝕,使用不同的結構元素實現對輸入圖像的操作,得到想要的結果.

膨脹 , 輸出的像素值是結構元素覆蓋下輸入圖像的最大像素值

腐蝕 , 輸出的圖像值是結構元素覆蓋下輸入圖像的最小像素值

提取方法

  • 輸入圖像彩色圖像imread

  • 轉換為灰度圖像 -- cvtColor

  • 轉換為二值圖像 -- adaptiveThreshold

  • 定義結構元素

  • 開操作(腐蝕+膨脹)提取水平與垂直線

C++ OpenCV如何提取水平和垂直線

代碼演示

新建一個項目opencv-0012,配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法.并加載我們常用的那個圖片顯示出來,這次我們加載的圖像換了一張,因為原來的圖像里面找不到水平和垂直的線,所以我們新換了一個圖片

C++ OpenCV如何提取水平和垂直線

顯示效果

C++ OpenCV如何提取水平和垂直線

根據上面寫的提取方法順序,我們寫代碼

1.先取灰度圖像

C++ OpenCV如何提取水平和垂直線

顯示效果

C++ OpenCV如何提取水平和垂直線

里面有個提示,當圖像轉為灰度或是二值圖時,我們在Mat類型如果前面加上~就代表取反了,像剛才的代碼里面我們顯示的時候把dst前面加上~

C++ OpenCV如何提取水平和垂直線

顯示效果如下:

C++ OpenCV如何提取水平和垂直線

2.轉換為二值圖像

把上面的灰度圖像取反后我們再轉換為二值圖像

C++ OpenCV如何提取水平和垂直線

顯示效果如下:

C++ OpenCV如何提取水平和垂直線

3.定義結構元素

    //定義橫線結構元素
    cv::Mat hline = cv::getStructuringElement(cv::MORPH_RECT,
        cv::Size(src.cols / 5, 1), cv::Point(-1, -1));

其實 Size里面src.cols/5我們是帶表寬度為原圖的5分之一長,如果不夠五分之一長度就過濾掉,1是高度,所以這樣就是一個橫線的元素

4.進行開操作

C++ OpenCV如何提取水平和垂直線

顯示效果

C++ OpenCV如何提取水平和垂直線

可以看到只保留了長度為圖像五分之一長的橫線.

取垂直線

C++ OpenCV如何提取水平和垂直線

我們把剛才的代碼改造一下,讓垂直和水平都顯示出來

垂直線取法就是在Size里面把后面的高度改為圖像的五分之一

顯示效果為

C++ OpenCV如何提取水平和垂直線


關于“C++ OpenCV如何提取水平和垂直線”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盱眙县| 寻甸| 滕州市| 吉隆县| 石渠县| 施甸县| 漳浦县| 新沂市| 满城县| 揭西县| 伊川县| 湟源县| 海阳市| 洛浦县| 江山市| 兴安县| 五大连池市| 海丰县| 玛纳斯县| 瑞昌市| 武宣县| 金阳县| 精河县| 平阳县| 乐清市| 泰安市| 年辖:市辖区| 新沂市| 广德县| 抚顺县| 肇东市| 无极县| 东丽区| 贺州市| 冀州市| 阿图什市| 洞口县| 舞钢市| 乌兰县| 拉孜县| 上虞市|