欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Opencv Hough算法實現(xiàn)圖片中直線檢測

 更新時間:2018年12月26日 09:23:29   作者:liuxiaodong1312  
這篇文章主要為大家詳細介紹了Opencv Hough算法實現(xiàn)圖片中直線檢測,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Opencv Hough算法實現(xiàn)直線檢測的具體代碼,供大家參考,具體內(nèi)容如下

(1)載入需檢測的圖及顯示原圖

Mat g_srcImage = imread("C:\\Users\\lenovo\\Pictures\\Saved Pictures\\Q.jpg"); //圖片所放路徑  
imshow("【原始圖】", g_srcImage);

(2)為顯示不同的效果圖而設置滑動條

namedWindow("【效果圖】", 1);
createTrackbar("值", "【效果圖】", &g_nthreshold, 200, on_HoughLines);

(3)圖像處理及顯示

//進行邊緣檢測和轉(zhuǎn)化為灰度圖 
 Canny(g_srcImage, g_midImage, 50, 200, 3);//進行一次canny邊緣檢測 
 cvtColor(g_midImage, g_dstImage, CV_GRAY2BGR);//轉(zhuǎn)化邊緣檢測后的圖為灰度圖 
 //調(diào)用一次回調(diào)函數(shù),調(diào)用一次HoughLinesP函數(shù) 
 on_HoughLines(g_nthreshold, 0);
 HoughLinesP(g_midImage, g_lines, 1, CV_PI / 180, 80, 50, 10);
 //顯示效果圖  
 imshow("【效果圖】", g_dstImage);
 waitKey(0);
 return 0;

(4)主要函數(shù):on_HoughLines()

//定義局部變量儲存全局變量 
 Mat dstImage = g_dstImage.clone();
 Mat midImage = g_midImage.clone();
 //調(diào)用HoughLinesP函數(shù) 
 vector<Vec4i> mylines;
 HoughLinesP(midImage, mylines, 1, CV_PI / 180, g_nthreshold + 1, 50, 10);
 //循環(huán)遍歷繪制每一條線段 
 for (size_t i = 0; i < mylines.size(); i++)
 {
 Vec4i l = mylines[i];
 line(dstImage, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(23, 180, 55), 1, CV_AA);
 }
 //顯示圖像 
 imshow("【效果圖】", dstImage);

(5)源代碼:

#include <opencv2/opencv.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
 
using namespace std;
using namespace cv;
 
 
Mat g_srcImage, g_dstImage, g_midImage;//原始圖、中間圖和效果圖 
vector<Vec4i> g_lines;//定義一個矢量結構g_lines用于存放得到的線段矢量集合 
//變量接收的TrackBar位置參數(shù) 
int g_nthreshold = 100;
 
static void on_HoughLines(int, void*);//回調(diào)函數(shù) 
static void ShowHelpText();
 
int main()
{
 //改變console字體顏色 
 system("color 3F");
 ShowHelpText();
 //載入原始圖和Mat變量定義   
 Mat g_srcImage = imread("C:\\Users\\lenovo\\Pictures\\Saved Pictures\\Q.jpg"); 
 //顯示原始圖  
 imshow("【原始圖】", g_srcImage);
 //創(chuàng)建滾動條 
 namedWindow("【效果圖】", 1);
 createTrackbar("值", "【效果圖】", &g_nthreshold, 200, on_HoughLines);
 //進行邊緣檢測和轉(zhuǎn)化為灰度圖 
 Canny(g_srcImage, g_midImage, 50, 200, 3);//進行一次canny邊緣檢測 
 cvtColor(g_midImage, g_dstImage, CV_GRAY2BGR);//轉(zhuǎn)化邊緣檢測后的圖為灰度圖 
 //調(diào)用一次回調(diào)函數(shù),調(diào)用一次HoughLinesP函數(shù) 
 on_HoughLines(g_nthreshold, 0);
 HoughLinesP(g_midImage, g_lines, 1, CV_PI / 180, 80, 50, 10);
 //顯示效果圖  
 imshow("【效果圖】", g_dstImage);
 waitKey(0);
 return 0;
}
static void on_HoughLines(int, void*)
{
 //定義局部變量儲存全局變量 
 Mat dstImage = g_dstImage.clone();
 Mat midImage = g_midImage.clone();
 //調(diào)用HoughLinesP函數(shù) 
 vector<Vec4i> mylines;
 HoughLinesP(midImage, mylines, 1, CV_PI / 180, g_nthreshold + 1, 50, 10);
 //循環(huán)遍歷繪制每一條線段 
 for (size_t i = 0; i < mylines.size(); i++)
 {
 Vec4i l = mylines[i];
 line(dstImage, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(23, 180, 55), 1, CV_AA);
 }
 //顯示圖像 
 imshow("【效果圖】", dstImage);
}
static void ShowHelpText()
{
 //輸出一些幫助信息 
 printf("\n\n\n\t通過調(diào)整滾動條觀察圖像的不同效果~\n\n");
 printf("\n\n\t\t\t by淺墨");
}

(6)原圖:

效果圖(調(diào)節(jié)滑條顯示不同結果圖):

值為100時:

值為23時:

 

值為60時:

值為126時:

 

值為184時:

 

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

相關文章

  • C++如何將十六進制字符串轉(zhuǎn)換為二進制字符串

    C++如何將十六進制字符串轉(zhuǎn)換為二進制字符串

    這篇文章主要介紹了C++如何將十六進制字符串轉(zhuǎn)換為二進制字符串問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++實現(xiàn)迷宮游戲

    C++實現(xiàn)迷宮游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)迷宮游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++中函數(shù)的用法小結

    C++中函數(shù)的用法小結

    這篇文章主要為大家分享下本人在閱讀《C++ Primer》函數(shù)一章時的讀書總結,需要的朋友可以參考下
    2014-02-02
  • 詳解C++編程中的主表達式與后綴表達式編寫基礎

    詳解C++編程中的主表達式與后綴表達式編寫基礎

    這篇文章主要介紹了C++編程中的主表達式與后綴表達式編寫基礎,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2016-01-01
  • Qt Design Studio創(chuàng)建工程的實現(xiàn)方法

    Qt Design Studio創(chuàng)建工程的實現(xiàn)方法

    Qt Design Studio它允許設計人員和開發(fā)人員使用通用的設計、開發(fā)、分析和調(diào)試工具在不同的開發(fā)平臺上共享一個項目,本文主要介紹了Qt Design Studio創(chuàng)建工程的實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下
    2022-05-05
  • C語言數(shù)據(jù)的存儲超詳細講解中篇練習

    C語言數(shù)據(jù)的存儲超詳細講解中篇練習

    使用編程語言進行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么
    2022-04-04
  • C語言的字符函數(shù)和字符串函數(shù)詳解

    C語言的字符函數(shù)和字符串函數(shù)詳解

    這篇文章主要為大家詳細介紹了C語言的字符函數(shù)和字符串函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • VScode上配置 c語言環(huán)境的圖文教程

    VScode上配置 c語言環(huán)境的圖文教程

    這篇文章主要介紹了配置VScode c語言環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 淺析C++ 仿函數(shù)

    淺析C++ 仿函數(shù)

    這篇文章主要介紹了C++ 仿函數(shù)的相關資料,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下
    2020-08-08
  • C/C++ 中實現(xiàn)讓控制臺暫停的方法

    C/C++ 中實現(xiàn)讓控制臺暫停的方法

    這篇文章主要介紹了C/C++ 中實現(xiàn)讓控制臺暫停的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論