1

プログラムは円を検出し、赤で色付けする必要があります。各ピクセルが円の中心であると仮定し、そこからの 4 つの点 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;
        }
    }
4

2 に答える 2

2

これは、円のハフ変換を使用して行うことができます。

画像内の円を検出するためのアルゴリズムを参照してください

于 2013-01-27T20:07:44.503 に答える
0

円を検出するには、4 点以上をチェックする必要があります。なんと16以上。半径によるかも。半径を大きくするには、より多くのポイントをチェックする必要があります。

または、Web で円検出アルゴリズムを検索してください。いくつかのピクセルをチェックする以外の方法もあります。

于 2013-01-27T20:07:33.983 に答える