画像のエッジ検出を行うアルゴリズムをコーディングする必要があります。 私は既にコードの一部分を持っています。これは水平方向にすべてのエッジを検出します。 サンプル画像:処理によるエッジ検出アルゴリズム(Java)
しかし、私は水平、垂直、斜め方向にエッジ検出が必要です。私はそれを水平道のような同じようにしようと が、私はArrayOutOfBoundaryExceptionを取得する(私はpixRechtsを行う場合などを=色(meinBild1.pixels [index1の(X + 1、Y)]);)
Uを実行します。どのようにそれを行うためのアイデアがありますか?処理を使用している
ありがとうございました。
今までのコード。
PImage meinBild1, meinBild2;
int anzahlPixel1, anzahlPixel2;
void setup()
{
size(1000,250);
meinBild1 = loadImage("stonehenge.jpg"); //500x250
meinBild2 = createImage(500,250, RGB);
anzahlPixel1 = meinBild1.width * meinBild1.height;
anzahlPixel2 = meinBild2.width * meinBild2.height;
meinBild1.loadPixels();
meinBild2.loadPixels();
edgeDetection();
meinBild1.updatePixels();
image(meinBild1, 0, 0);
meinBild2.updatePixels();
image(meinBild2, 500, 0);
}
void draw()
{
}
void edgeDetection()
{
int x,y;
float edge;
color pix, pixLinks;
for (x = 1; x < meinBild2.width; x++)
{
for (y = 0; y < meinBild2.height; y++)
{
pix= color(meinBild1.pixels[index1(x,y)]);
pixLinks= color(meinBild1.pixels[index1(x-1,y)]);
edge = abs(brightness(pix)-brightness(pixLinks));
if (edge>50) {
edge=255;
}
else{
edge=0;
}
meinBild2.pixels[index2(x,y)] = color(edge);
}
}
}
int index1(int x, int y)
{
int r= x + y*meinBild1.width;
return r;
}
int index2(int x, int y)
{
int r= x + y*meinBild2.width;
return r;
}
がUに感謝最後のyピクセル、私はそれを持っているで停止する最初のピクセルで停止します。) – Sascha