我有一個黑色圓圈的圖像。使用JUI檢測圖像中的黑色圓圈(不僅僅是像素)
該圖像是一份調查表的掃描副本,非常像OMR調查問卷表。
我想檢測已使用燻黑圈JUI
(如果需要任何其他API)
我有,而搜索的幾個例子,但他們不給我準確的結果。
我試過.. UDAI,Moodle的 ...等...
然後,我決定讓我自己。我能夠檢測到黑色像素,但如下所示。
BufferedImage mapa = BMPDecoder.read(new File("testjui.bmp"));
final int xmin = mapa.getMinX();
final int ymin = mapa.getMinY();
final int ymax = ymin + mapa.getHeight();
final int xmax = xmin + mapa.getWidth();
for (int i = xmin;i<xmax;i++)
{
for (int j = ymin;j<ymax;j++)
{
int pixel = mapa.getRGB(i, j);
if ((pixel & 0x00FFFFFF) == 0)
{
System.out.println("("+i+","+j+")");
}
}
}
這給了我所有的黑色像素的座標,但我不知道如果它的一個圓或不。
我怎樣才能確定它的一個圓圈。
2]另外我想知道如果掃描的圖像是傾斜的....我知道Udai api照顧,但由於某種原因,我無法讓我的調查模板運行該代碼。
我覺得這個方法應該爲我工作...但你可以建議我在java中的聚類算法,將有助於這個.. – 2013-04-05 05:28:23
據我所知是沒有的算法,做什麼,你需要在Java的。我要做的是自己寫一個算法,這將是k-means算法的變體。本質上,您需要爲集羣類編寫一個名爲distanceFromCluster(Point p)的方法,該方法循環遍歷集羣中的每個點q並計算從p到q的距離。此方法將允許您確定點q是否足夠接近集羣,如果是,則應將其添加到該集合中... – phcoding 2013-04-08 12:59:46
然後,此過程應包含在while循環中,並在所有點位於正確集羣中時終止 - 即在每個過程中沒有點移動到新的羣集時。 – phcoding 2013-04-08 13:00:32