我需要從這個圖像(左上角,右上角,左下角和最後右下角)查找圓的半徑和極座標點(Hough Circle Transform)
圖像在疊加回原始圖像之前先通過閾值然後進行Canny邊緣檢測。
(通過油漆畫),並將它們連接在一起(通過油漆畫)
,但我怎麼想得到半徑和x y從中心開始座標,然後畫線?
for (int i = 0; i < circles.size(); i++)
{
//icout << i<<"\n"<<endl;
Point center(cvRound(circles[i][ 0]), cvRound(circles[i][1]));
stringstream ss;
ss << i + 1;
putText(dst, ss.str(), center, 1, 1, Scalar(255, 0, 225), 2, 0);
int radius = cvRound(circles[i][2]);
// circle center
circle(src, center, 3, Scalar(0, 255, 0), -1, 8, 0);
// circle outline
circle(src, center, radius, Scalar(0, 0, 255), 3, 8, 0);
//for original image overlap
circle(dst, center, 3, Scalar(0, 255, 0), -1, 8, 0);
// circle outline
circle(dst, center, radius, Scalar(0, 255, 255), 3, 8, 0);
}
這是演示代碼,但我 從
for (int i = 0; i < circles.size(); i++)
和
努力理解有關 circles.size()Point center(cvRound(circles[i][ 0]), cvRound(circles[i][1]));
我會,如果感激你可以用更簡單的方式向我解釋這一點,因爲我仍然在學習過程中,只是我開始的一個起點而已。 謝謝!
不完全是對您問題的回答,但可能是所有圈子的凸包是您最初想要的解決方案嗎? http://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/hull/hull.html – Micka
@Micka是的!這正是我所需要的,除非我只需要大綱。我是否能夠改變它的顏色,以便我能夠將它設爲閾值而僅獲得沒有內部輪廓的輪廓?我不太確定rng.uniform(0,255)是怎麼做的,爲什麼它需要3個:l – Lyber
嘗試'for(int i = 0; i(),0,Point()); } '只能以全紅色繪製船體。 rng代碼是一個隨機數生成器,所以教程代碼將以隨機顏色繪製! –
Micka