久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

霍夫圓檢測精度很低

Hough circle detection accuracy very low(霍夫圓檢測精度很低)
本文介紹了霍夫圓檢測精度很低的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試從看起來具有非常好的清晰度的圖像中檢測圓形.我確實意識到圓圈的一部分丟失了,但從我讀到的關于霍夫變換的內容來看,這似乎不會導致我遇到的問題.

I am trying to detect a circular shape from an image which appears to have very good definition. I do realize that part of the circle is missing but from what I've read about the Hough transform it doesn't seem like that should cause the problem I'm experiencing.

輸入:

輸出:

代碼:

// Read the image
Mat src = Highgui.imread("input.png");

// Convert it to gray
Mat src_gray = new Mat();
Imgproc.cvtColor(src, src_gray, Imgproc.COLOR_BGR2GRAY);

// Reduce the noise so we avoid false circle detection
//Imgproc.GaussianBlur( src_gray, src_gray, new Size(9, 9), 2, 2 );

Mat circles = new Mat();

/// Apply the Hough Transform to find the circles
Imgproc.HoughCircles(src_gray, circles, Imgproc.CV_HOUGH_GRADIENT, 1, 1, 160, 25, 0, 0);

// Draw the circles detected
for( int i = 0; i < circles.cols(); i++ ) {
    double[] vCircle = circles.get(0, i);

    Point center = new Point(vCircle[0], vCircle[1]);
    int radius = (int) Math.round(vCircle[2]);

    // circle center
    Core.circle(src, center, 3, new Scalar(0, 255, 0), -1, 8, 0);
    // circle outline
    Core.circle(src, center, radius, new Scalar(0, 0, 255), 3, 8, 0);
}

// Save the visualized detection.
String filename = "output.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, src);

我已將高斯模糊注釋掉,因為(直覺上相反)它大大增加了找到的同樣不準確的圓圈的數量.

I have Gaussian blur commented out because (counter intuitively) it was greatly increasing the number of equally inaccurate circles found.

我的輸入圖像有什么問題會導致 Hough 不能像我預期的那樣工作嗎?我的參數有問題嗎?

Is there anything wrong with my input image that would cause Hough to not work as well as I expect? Are my parameters way off?

第一個答案提出了一個關于 Hough 的最小/最大半徑提示的好點.我拒絕添加這些參數,因為這篇文章中的示例圖像只是數千張圖像中的一張,這些圖像的半徑從大約 20 到幾乎無窮大不等.

first answer brought up a good point about the min/max radius hint for Hough. I resisted adding those parameters as the example image in this post is just one of thousands of images all with varying radii from ~20 to almost infinity.

推薦答案

如果你能正確設置 minRadiusmaxRadius 參數,它會給你很好的結果.

If you'd set minRadius and maxRadius paramaeters properly, it'd give you good results.

對于您的圖像,我嘗試了以下參數.

For your image, I tried following parameters.

method - CV_HOUGH_GRADIENT
minDist - 100
dp - 1
param1 - 80
param2 - 10
minRadius - 250
maxRadius - 300

我得到以下輸出

  • 注意:我在 C++ 中嘗試過.

這篇關于霍夫圓檢測精度很低的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數據庫)
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 国产在线不卡视频 | 色视频一区二区 | 国产成人一区二区三区精 | 亚洲国产欧美精品 | 成人在线精品视频 | 91精品国产99 | 亚洲视频自拍 | 视频一区在线观看 | 不卡一区 | 国产精品美女久久久久aⅴ国产馆 | 91久久久久久久 | 日日干日日操 | 在线看av的网址 | 久久久免费电影 | 精品在线视频播放 | 蜜臀久久 | 久热久 | 三级在线视频 | 亚洲一区二区免费看 | 黄色免费av | 国产在线播放一区二区三区 | 韩日精品在线观看 | 国产一区电影 | 男人天堂国产 | 九色.com | 99精品在线 | 欧美激情精品久久久久久 | 日韩在线观看一区 | 一级毛片,一级毛片 | 免费成人在线网站 | 国产精品久久av | 国产婷婷色一区二区三区 | 天堂免费看片 | 在线一区观看 | 成人国产在线观看 | 99久久婷婷国产综合精品电影 | 亚洲国产精品一区 | 欧美一区 | 日韩欧美一级片 | 久久久久久久电影 | 一区二区视频在线观看 |