程序应检测圆圈并将其涂成红色。建议使用对称方法,其中我假设每个像素是圆的中心并检查距离它的四个点r(半径)距离。如果它们相同,请画一个圆圈。然而,在下面的代码中,我得到了许多不必要的圈子
static boolean isCenterOfCircle(int row, int col, int r, BufferedImage image) {
//getPixels gets the color of the current pixel.
if(getPixel(row,col,image) == getPixel(row+r,col,image)
|| getPixel(row,col,image) == getPixel(row-r,col,image)
|| getPixel(row,col,image) == getPixel(row,col+r,image)
|| getPixel(row,col,image) == getPixel(row,col-r,image)){
return true;
}else{
return false;
}
}
答案 0 :(得分:2)
这可以使用Hough变换进行圆圈。
答案 1 :(得分:0)
您应检查超过4个点以检测圆圈。 16或更多。也许取决于半径。对于更大的半径,您应该检查更多的点。
或在网上搜索圈子检测算法。除了检查几个像素之外还有其他方法。