日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opencv 直线检测 java_OpenCV实现图像的直线检测

發布時間:2024/9/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv 直线检测 java_OpenCV实现图像的直线检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇博文介紹了圖像的Canny邊緣檢測,本文主要介紹圖像的直線檢測部分,主要使用概率霍夫變換來檢測直線,調用的函數為HoughLinesP(),下面給出代碼部分以及直線檢測效果圖:

1、代碼部分:

// Detect_Lines.cpp : 定義控制臺應用程序的入口點。

//

#include "stdafx.h"

#include

#include "highgui.h"

using namespace std;

using namespace cv;

void drawDetectLines(Mat& image,const vector& lines,Scalar & color)

{

// 將檢測到的直線在圖上畫出來

vector::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); //線條寬度設置為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 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、原圖以及直線檢測效果圖:

至此,已經實現了圖像的直線檢測部分,將檢測出來的直線在原圖中畫了出來,也可以將檢測出來的直線在上一篇博文中的邊緣圖像中畫出來,效果如下:

特別說明,HoughLinesP()函數的一般步驟請參考博文:Opencv2.4.9函數HoughLinesP分析

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

總結

以上是生活随笔為你收集整理的opencv 直线检测 java_OpenCV实现图像的直线检测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。