OpenCV實(shí)現(xiàn)圖像的直線檢測(cè)
上一篇博文介紹了圖像的Canny邊緣檢測(cè),本文主要介紹圖像的直線檢測(cè)部分,主要使用概率霍夫變換來(lái)檢測(cè)直線,調(diào)用的函數(shù)為HoughLinesP(),下面給出代碼部分以及直線檢測(cè)效果圖:
1、代碼部分:
// Detect_Lines.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。 // #include "stdafx.h" #include <cv.h> #include "highgui.h" using namespace std; using namespace cv; void drawDetectLines(Mat& image,const vector<Vec4i>& lines,Scalar & color) { // 將檢測(cè)到的直線在圖上畫(huà)出來(lái) vector<Vec4i>::const_iterator it=lines.begin(); while(it!=lines.end()) { Point pt1((*it)[0],(*it)[1]); Point pt2((*it)[2],(*it)[3]); line(image,pt1,pt2,color,2); //線條寬度設(shè)置為2 ++it; } } int _tmain(int argc, _TCHAR* argv[]) { Mat src_img=imread("..\\image_norm\\71253.jpg"); imshow("src_img",src_img); Mat I; cvtColor(src_img,I,CV_BGR2GRAY); Mat contours; Canny(I,contours,125,350); threshold(contours,contours,128,255,THRESH_BINARY); vector<Vec4i> lines; HoughLinesP(contours,lines,1,CV_PI/180,80,50,10); drawDetectLines(src_img,lines,Scalar(0,255,0)); imshow("Detect_Lines",src_img); cvWaitKey(0); return 0; }
2、原圖以及直線檢測(cè)效果圖:
至此,已經(jīng)實(shí)現(xiàn)了圖像的直線檢測(cè)部分,將檢測(cè)出來(lái)的直線在原圖中畫(huà)了出來(lái),也可以將檢測(cè)出來(lái)的直線在上一篇博文中的邊緣圖像中畫(huà)出來(lái),效果如下:
特別說(shuō)明,HoughLinesP()函數(shù)的一般步驟請(qǐng)參考博文:Opencv2.4.9函數(shù)HoughLinesP分析
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 利用Opencv中Houghline方法實(shí)現(xiàn)直線檢測(cè)
- OpenCV霍夫變換(Hough Transform)直線檢測(cè)詳解
- python opencv實(shí)現(xiàn)直線檢測(cè)并測(cè)出傾斜角度(附源碼+注釋)
- Python+OpenCV圖像處理——實(shí)現(xiàn)直線檢測(cè)
- Java+opencv3.2.0實(shí)現(xiàn)hough直線檢測(cè)
- opencv3/C++實(shí)現(xiàn)霍夫圓/直線檢測(cè)
- OpenCV利用霍夫變換進(jìn)行直線檢測(cè)
- Opencv Hough算法實(shí)現(xiàn)圖片中直線檢測(cè)
- 詳解在Python中使用OpenCV進(jìn)行直線檢測(cè)
- OpenCV實(shí)現(xiàn)直線檢測(cè)
相關(guān)文章
MFC擴(kuò)展DLL中導(dǎo)出類和對(duì)話框的實(shí)現(xiàn)方法
這篇文章主要介紹了MFC擴(kuò)展DLL中導(dǎo)出類和對(duì)話框的實(shí)現(xiàn)方法,詳細(xì)講述了實(shí)現(xiàn)擴(kuò)展DLL中導(dǎo)出類和對(duì)話框的具體步驟與方法,具有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10Visual?studio2022?利用glfw+glad配置OpenGL環(huán)境的詳細(xì)過(guò)程
這篇文章主要介紹了Visual?studio2022?利用glfw+glad配置OpenGL環(huán)境,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10C++可變參數(shù)的函數(shù)與模板實(shí)例分析
這篇文章主要介紹了C++可變參數(shù)的函數(shù)與模板,非常重要的概念,需要的朋友可以參考下2014-08-08C/C++?Qt?MdiArea?多窗體組件應(yīng)用教程
MDI窗體控件類似于畫(huà)布,該控件只具備展示窗體的功能,無(wú)法實(shí)現(xiàn)生成窗體,所以我們需要在項(xiàng)目中手動(dòng)增加自定義的Dialog對(duì)話框,并對(duì)該對(duì)話框進(jìn)行一定的定制,這篇文章主要介紹了C/C++?Qt?MdiArea?多窗體組件應(yīng)用,需要的朋友可以參考下2021-12-12超詳細(xì)VScode調(diào)試教程tasks.json和launch.json的設(shè)置
vscode是一個(gè)輕量級(jí)的文本編輯器,但是它的擴(kuò)展插件可以讓他拓展成功能齊全的IDE,這其中就靠的是tasks.json和launch.json的配置,下面這篇文章主要給大家介紹了關(guān)于超詳細(xì)VScode調(diào)試教程tasks.json和launch.json設(shè)置的相關(guān)資料,需要的朋友可以參考下2022-10-10Qt5 串口類QSerialPort的實(shí)現(xiàn)
在Qt5以上提供了QtSerialPort模塊,方便編程人員快速的開(kāi)發(fā)應(yīng)用串口的應(yīng)用程序。本文主要介紹了Qt5 串口類QSerialPort的實(shí)現(xiàn),,感興趣的可以了解一下2022-05-05