ユーザーが2枚の写真を比較できるようにするプログラムを書いています。1枚はサンプルカラーとして、もう1枚は編集します。最初からピクセル情報を収集し、次のメソッドを適用して後者を編集します。
結果の写真: http://www.flickr.com/photos/92325795@N02/8392038944/in/photostream
私の写真は更新されており、品質/ノイズ/色にもかかわらず、あちこちに奇妙な色があります. 誰でもそれを削除するために何をすべきか知っていますか? または、私が使用している方法をさらに改善しますか? コードは次のとおりです。
入力は編集するビットマップ、inColor は編集する写真の鼻の色、reqcolor はサンプル/最適な写真の私の鼻の色です。
public Bitmap shiftRGB(Bitmap input, int inColor, int reqColor){
int deltaR = Color.red(reqColor) - Color.red(inColor);
int deltaG = Color.green(reqColor) - Color.green(inColor);
int deltaB = Color.blue(reqColor) - Color.blue(inColor);
//--how many pixels ? --
int w = input.getWidth();
int h = input.getHeight();
//-- change em all! --
for (int i = 0 ; i < w; i++){
for (int j = 0 ; j < h ; j++ ){
int pixColor = input.getPixel(i,j);
//-- colors now ? --
int inR = Color.red(pixColor);
int inG = Color.green(pixColor);
int inB = Color.blue(pixColor);
if(inR > 255){ inR = 255;}
if(inG > 255){ inG = 255;}
if(inB > 255){ inB = 255;}
if(inR < 0){ inR = 0;}
if(inG < 0){ inG = 0;}
if(inB < 0){ inB = 0;}
//-- colors then --
input.setPixel(i,j,Color.argb(255,inR + deltaR,inG + deltaG,inB + deltaB));
}
}
return input;
助けてくれてありがとう!事前にもう一度ありがとうと言うよりも、感謝の気持ちを表すことはできません!