私のスケッチでは、入力画像を構成する一連のミニ画像があります。
は、現在、私の入力は手の絵で、私の小さな画像は、次のとおりです。https://imgur.com/a/0Y5s9
(3テストミニ画像が透明なので、imgurからそれらをドラッグして、彼らは現在、黒)
と私の現在の出力は次のようになります。 http://imgur.com/a/sIZuAミニ画像を使って画像を作る(処理)
なぜこのようにオーバーラップしているのかわかりません。オーバーレイできるように、各ミニイメージの背景を透明にしています。そのため、スケールアウトする方法が必要です。
私が解決したいと思っている主な問題は、自分のミニ画像が手の周りに白い背景ではなく、手だけを構成することを確認する必要があることです。私はミニ画像が手の色合いにのみ割り当てられていれば、白い背景もカウントされないと考えました。
私はそれを行う方法がわかりません。助けて?
CODE:
final int len=25;
final float thresh=170;
boolean newDesign=false;
PImage pic;
ArrayList<PImage> imgContainer;
int n=3;
void setup() {
size(800, 800, P2D);
colorMode(RGB, 255);
background(250, 250, 250);
rectMode(CENTER);
//imageMode(CENTER);
pic=loadImage("hand.jpg");
pic.resize(width, height);
color c1 = color(200,25,25);
color c2 = color(25, 255, 200);
imgContainer=new ArrayList<PImage>();
PImage pimg1=loadImage("test0.png");
pimg1.resize(50, 50);
imgContainer.add(pimg1);
PImage pimg2=loadImage("test1.png");
pimg2.resize(50, 50);
imgContainer.add(pimg2);
PImage pimg3=loadImage("test2.png");
pimg1.resize(50, 50);
imgContainer.add(pimg3);
noLoop();
noStroke();
}
void draw() {
if (newDesign==false) {
return;
}
pic.loadPixels();
for (int y = 0; y < height; y+=18) {
for (int x = 0; x < width; x+=18) {
// Get the color stored in the pixel
int index=y*width+x;
color pixelValue = pic.pixels[index];
// Determine the brightness of the pixel
float pixelBrightness = brightness(pixelValue);
float imgPicked=constrain(pixelBrightness/thresh, 0, n-1);
image(imgContainer.get((int)imgPicked),x,y);
}
}
}
void mouseReleased() {
newDesign=!newDesign;
redraw();
}
コードをエディタに貼り付けて強調表示し、コードボタンを押して各行を別々のブロックとしてフォーマットするのではなく、1つのブロックとしてフォーマットするようにコードの書式を修正してください。必要なすべての画像ファイルへのリンクも提供してください。さらに、プログラムを実行していることを示すCodePenへのリンクを投稿してください。 –
修正しました、ごめんなさい。 imgurとitllのすべての画像をドラッグすることができます。 – guyintightpants
私はまだあなたが行っている効果は全く分かりません。あなたはこのコードが期待しているものを模倣していますか?あなたが言うとき、正確に何を意味するのですか?「ミニ画像が手の陰に割り当てられていれば、白い背景はカウントされません」と思った?あなたは手の陰に何かを割り当てているだけですか? –