亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

OpenCV實現直線檢測并消除

 更新時間:2021年06月23日 09:15:04   作者:Leonwenbin  
這篇文章主要為大家詳細介紹了OpenCV實現直線檢測并消除,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了OpenCV實現直線檢測并消除的具體代碼,供大家參考,具體內容如下

很簡單,代碼如下

#include<iostream>
#include<opencv.hpp>
 
using namespace cv;
using namespace std;
 
int main()
{
 Mat img, dst, img_gary, img_bin, temp, r_line, c_line, kernel;
 char INPUT[] = "input";
 char OUTPUT[] = "output";
 char GRAY_IMG[] = "gary image";
 char BIN_IMG[] = "binary image";
 char DST_IMG[] = "final image";
 
 img = imread("D:\\OpenCV\\images\\demo_test_2.jpg");
 if (img.empty())
 {
  cout << "image loading failed..." << endl;
  return -1;
 }
 namedWindow(INPUT, WINDOW_AUTOSIZE);
 imshow(INPUT, img);
 
 
 cvtColor(img, img_gary, COLOR_BGR2GRAY);
 imshow(GRAY_IMG, img_gary);
 
 adaptiveThreshold(~img_gary, img_bin, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
 imshow(BIN_IMG, img_bin);
 
 //水平結構元素
 r_line = getStructuringElement(MORPH_RECT, Size(img.cols / 16, 1), Point(-1, -1));
 //垂直結構元素
 c_line = getStructuringElement(MORPH_RECT, Size(1, img.rows / 16), Point(-1, -1));
 
 kernel = getStructuringElement(MORPH_RECT, Size(4, 4), Point(-1, -1));
 erode(img_bin, temp, kernel);
 dilate(temp, dst, kernel);
 
 //erode(img_bin, temp, r_line);
 //dilate(temp, dst, r_line);
 //morphologyEx(img_bin, dst, MORPH_OPEN, c_line);
 
 bitwise_not(dst, dst);
 //blur(dst, dst, Size(3, 3), Point(-1, -1));
 imshow(DST_IMG, dst);
 
 waitKey(0);
 return 0;
}

放幾張效果圖

原圖

處理結果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 冒泡算法的改進具體實現

    冒泡算法的改進具體實現

    這篇文章主要介紹了冒泡算法的改進具體實現,有需要的朋友可以參考一下
    2013-12-12
  • C++中的Lambda表達式詳解

    C++中的Lambda表達式詳解

    這篇文章主要介紹了C++中的Lambda表達式詳解,本文講解了基本語法、Lambda的使用等內容,需要的朋友可以參考下
    2014-10-10
  • C語言枚舉與聯合體深入詳解

    C語言枚舉與聯合體深入詳解

    枚舉顧名思義就是把所有的可能性列舉出來,像一個星期分為七天我們就可以使用枚舉,聯合體是由關鍵字union和標簽定義的,和枚舉是一樣的定義方式,不一樣的是,一個聯合體只有一塊內存空間,什么意思呢,就相當于只開辟最大的變量的內存,其他的變量都在那個變量占據空間
    2022-09-09
  • C++編程中將引用類型作為函數參數的方法指南

    C++編程中將引用類型作為函數參數的方法指南

    這篇文章主要介紹了C++編程中將引用類型作為函數參數的方法指南,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • OpenCV實現輪廓外接多邊形

    OpenCV實現輪廓外接多邊形

    這篇文章主要為大家詳細介紹了OpenCV實現輪廓外接多邊形,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語言中形參和實參詳解及實例代碼

    C語言中形參和實參詳解及實例代碼

    這篇文章主要介紹了C語言中形參和實參詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-05-05
  • C++中string的模擬實現

    C++中string的模擬實現

    這篇文章主要為大家詳細介紹了C++中string的模擬實現,感興趣的小伙伴們可以參考一下
    2016-08-08
  • C++中的6種構造函數舉例詳解

    C++中的6種構造函數舉例詳解

    這篇文章主要介紹了C++中的6種構造函數的相關資料,C++中構造函數用于類對象初始化,類型包括默認構造函數、參數化構造函數、拷貝構造函數等,默認構造函數通常不需要參數,編譯器會自動生成,除非存在其他構造函數,需要的朋友可以參考下
    2024-10-10
  • C語言簡明講解歸并排序的應用

    C語言簡明講解歸并排序的應用

    這篇文章主要介紹了 c語言排序之歸并排序,歸并就是把兩個或多個序列合并,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C++圖文并茂分析講解內存管理

    C++圖文并茂分析講解內存管理

    本章主要介紹C語言與C++的內存管理,以C++的內存分布作為引入,介紹C++不同于C語言的內存管理方式(new delete對比 malloc free),感興趣的朋友來看看吧
    2022-09-09

最新評論