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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HoughLinesP函数(概率检测直线)

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HoughLinesP函数(概率检测直线) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 統計概率霍夫線變換
    • 這是執行起來效率更高的霍夫線變換. 它輸出檢測到的直線的端點?
    • 在OpenCV 中它通過函數?HoughLinesP?來實現

    代碼

  • 這個程序是用來做什么的?
    • 加載一幅圖片
    • 對圖片進行?標準霍夫線變換?或是?統計概率霍夫線變換.
    • 分別在兩個窗口顯示原圖像和繪出檢測到直線的圖像.
  • 我們將要說明的例程能從?這里?下載。 一個更高級的版本 (能同時演示標準霍夫線變換和統計概率霍夫線變換并帶有活動條來改變變換的閾值) 能從?這里?下載。
  • #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp"#include <iostream>using namespace cv; using namespace std;void help() {cout << "\nThis program demonstrates line finding with the Hough transform.\n""Usage:\n""./houghlines <image_name>, Default is pic1.jpg\n" << endl; }int main(int argc, char** argv) {const char* filename = argc >= 2 ? argv[1] : "pic1.jpg";Mat src = imread(filename, 0);if(src.empty()){help();cout << "can not open " << filename << endl;return -1;}Mat dst, cdst;Canny(src, dst, 50, 200, 3);cvtColor(dst, cdst, CV_GRAY2BGR);#if 0 vector<Vec2f> lines; HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0 ); for( size_t i = 0; i < lines.size(); i++ ) { float rho = lines[i][0], theta = lines[i][1]; Point pt1, pt2; double a = cos(theta), b = sin(theta); double x0 = a*rho, y0 = b*rho; pt1.x = cvRound(x0 + 1000*(-b)); pt1.y = cvRound(y0 + 1000*(a)); pt2.x = cvRound(x0 - 1000*(-b)); pt2.y = cvRound(y0 - 1000*(a)); line( cdst, pt1, pt2, Scalar(0,0,255), 3, CV_AA); } #else vector<Vec4i> lines; HoughLinesP(dst, lines, 1, CV_PI/180, 50, 50, 10 ); for( size_t i = 0; i < lines.size(); i++ ) { Vec4i l = lines[i]; line( cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, CV_AA); } #endifimshow("source", src);imshow("detected lines", cdst);waitKey();return 0; }

    代碼說明

  • 加載圖片

    Mat src = imread(filename, 0); if(src.empty()) {help();cout << "can not open " << filename << endl;return -1; }
  • 用Canny算子對圖像進行邊緣檢測

    Canny(src, dst, 50, 200, 3);

    現在我們將要執行霍夫線變換. 我們將會說明怎樣使用OpenCV的函數做到這一點:

  • 標準霍夫線變換

  • 首先, 你要執行變換:

    vector<Vec2f> lines; HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0 );

    帶有以下自變量:

    • dst: 邊緣檢測的輸出圖像. 它應該是個灰度圖 (但事實上是個二值化圖)
    • lines: 儲存著檢測到的直線的參數對??的容器 *?rho?: 參數極徑??以像素值為單位的分辨率. 我們使用?1?像素.
    • theta: 參數極角??以弧度為單位的分辨率. 我們使用?1度?(即CV_PI/180)
    • threshold: 要”檢測” 一條直線所需最少的的曲線交點
    • srn?and?stn: 參數默認為0. 查缺OpenCV參考文獻來獲取更多信息.
  • 通過畫出檢測到的直線來顯示結果.

    for( size_t i = 0; i < lines.size(); i++ ) {float rho = lines[i][0], theta = lines[i][1];Point pt1, pt2;double a = cos(theta), b = sin(theta);double x0 = a*rho, y0 = b*rho;pt1.x = cvRound(x0 + 1000*(-b));pt1.y = cvRound(y0 + 1000*(a));pt2.x = cvRound(x0 - 1000*(-b));pt2.y = cvRound(y0 - 1000*(a));line( cdst, pt1, pt2, Scalar(0,0,255), 3, CV_AA); }
  • 統計概率霍夫線變換

  • 首先, 你要執行變換:

    vector<Vec4i> lines; HoughLinesP(dst, lines, 1, CV_PI/180, 50, 50, 10 );

    帶有以下自變量:

    • dst: 邊緣檢測的輸出圖像. 它應該是個灰度圖 (但事實上是個二值化圖) *?lines: 儲存著檢測到的直線的參數對??的容器
    • rho?: 參數極徑??以像素值為單位的分辨率. 我們使用?1?像素.
    • theta: 參數極角??以弧度為單位的分辨率. 我們使用?1度?(即CV_PI/180)
    • threshold: 要”檢測” 一條直線所需最少的的曲線交點 *?minLinLength: 能組成一條直線的最少點的數量. 點數量不足的直線將被拋棄.
    • maxLineGap: 能被認為在一條直線上的亮點的最大距離.
  • 通過畫出檢測到的直線來顯示結果.

    for( size_t i = 0; i < lines.size(); i++ ) {Vec4i l = lines[i];line( cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, CV_AA); }
  • 顯示原始圖像和檢測到的直線:

    imshow("source", src); imshow("detected lines", cdst);
  • 等待用戶按鍵推出程序

    waitKey();
  • 結果

    Note

    ?

    得到的結果使用的是在上面?代碼?部分提到的更高級版代碼. 霍夫線變換的代碼沒有改變, 唯一不同的是在GUI的部分加入了活動條可動態改變閾值.輸入圖像為:

    通過執行統計概率霍夫線變換我們能得到下面的結果:

    當你使用滑動條來改變?閾值?的時候會觀察到檢測到線的數目的改變. 這是因為: 如果你設置了一個更大的閾值, 能檢測到的線的數目將更少 (你需要更多的點來表示一條能檢測到的直線).

    總結

    以上是生活随笔為你收集整理的HoughLinesP函数(概率检测直线)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: av最新天堂 | 欧美大片在线免费观看 | 日韩字幕在线观看 | 亚洲欧洲日韩 | www视频在线免费观看 | 日本精品网站 | 19禁大尺度做爰无遮挡电影 | 亚洲av熟女国产一区二区性色 | aⅴ天堂网| 欧美a级肉欲大片xxx | 免费看成人片 | 日日射日日操 | 美女脱了内裤喂我喝尿视频 | 婷婷激情成人 | 护士的小嫩嫩好紧好爽 | 免费在线视频你懂的 | 在线观看亚洲大片短视频 | 秋霞影院午夜 | 日韩精品午夜 | 欧美日韩国产一区二区 | 中文自拍 | 欧美一级片一区 | 成年人看的黄色片 | 黄色网页在线免费观看 | 亚洲av首页在线 | 亚洲精品国产精品国 | 日日操网站| 国产在线一区二区三区四区 | 激情自拍偷拍 | 亚州中文 | www国产无套内射com | 又粗又大又硬又长又爽 | 久久精品这里只有精品 | 国产日本在线观看 | 2018天天弄 | 亚洲欧美网站 | 久久久看片 | 伊人开心网 | 99久久久无码国产精品性色戒 | 欧美理伦少妇2做爰 | 碰碰色| 国产一道本 | 五月天堂婷婷 | 日韩av在线播放一区 | 老司机精品福利视频 | 91视频最新地址 | 99精品视频在线播放免费 | 国偷自拍第113页 | 成人黄色一级视频 | 国产精品久久久久久久久晋中 | 国产成人精品一区二区三区在线 | 一本色道久久综合亚洲精品按摩 | 男生坤坤放进女生坤坤里 | 精品国语对白 | 日本人极品人妖高潮 | www.黄在线 | 男人的天堂在线视频 | 亚洲久久久久久久 | 六月婷婷中文字幕 | 亚洲精品一区二区三区区别 | 91成人免费在线 | 精品亚洲永久免费 | 日韩欧美国产一区二区在线观看 | 这里只有精品免费视频 | 国产情侣在线播放 | 成人污污www网站免费丝瓜 | 欧美成人一区二免费视频软件 | 日韩不卡一二区 | 69视频免费看 | 欧美亚洲综合视频 | 俺也来俺也去俺也射 | 91色站| 伊人av在线 | jizz处女| 国产第113页 | 西欧free性满足hd老熟妇 | 日韩国产在线观看 | 影音先锋国产 | av毛片一区| 亚洲综合五月天婷婷丁香 | 久久一级免费视频 | 91看片免费看 | 夜夜看 | 啪啪官网| 密臀av一区二区 | 超碰在线伊人 | 超碰97干 | 国产精品久久久久久久久久久久久久久久 | 亚洲专区中文字幕 | 成人3d动漫一区二区三区91 | av色欲无码人妻中文字幕 | 97伦伦午夜电影理伦片 | 91在线精品视频 | 亚洲精品视频导航 | 91久久一区二区三区 | 国产区在线 | 亚洲av成人片色在线观看高潮 | 99热r | 中文字幕乱码中文字幕 |