processingで、erodeフィルタを使わずに、膨張収縮処理を行いたいです。
以下のコードを書きましたが、画像が出力されません。
原因がわからないので、ヒントをいただきたいです。
loadImageはできています。
流れとしては、まず取り込んだ画像1をthresholdで2値化処理を行い、そのあと適当な操作をすることで画像2として書き出したいです。任意の座標の9傍の中で白い座標が3つ以上ある場合には画像2のその任意の座標に白を、そうでない場合に黒を出力したいです。
PImage img1;
PImage img2=createImage(500, 500, RGB);
void setup(){
img1=loadImage("penguin.jpg");
loadPixels();
size(1000, 500);
}
void draw(){
color black=color(0, 0,0);
color white=color(255, 255, 255);
img1.filter(THRESHOLD, 0.5);
image(img1, 0, 0);
int x, y, xx, yy, xxx, yyy, count, col;
for(x=1; x<499;){
for(y=1; y<499; y++){
count=0;
x+=1;
for(xx=-1; xx<=1; x++){
for(yy=-1; yy<=1; y++){
xxx=x+xx;
yyy=y+yy;
col=img1.get(xxx, yyy);
if(col==255)count++;
}
}
if(count>=3)img2.set(x, y, white); else img2.set(x, y, black); }
}
image(img1, 0, 0);
image(img2, 500, 0);
}
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/11 17:38