私は白黒の画像を持っています - RGB 565,200x50。 私は各ピクセルの強度0..255を計算できますか?各ピクセルの輝度0..255?
3
A
答えて
0
ルミナンスと2つのクロミナンスコンポーネントを持つカラーモデルを使用して変換を試みることができます。輝度成分は輝度を表し、2つの色成分は色を表す。 http://en.wikipedia.org/wiki/YUVをチェックしてみてください。
それ以外の場合:灰色から黒色までの白い灰色から黒色の色は、各チャンネルのビット数が同じRGB形式で等しい値を持ちます(たとえば、(0、0、0)から(255、 255,255))。これが真実であると仮定すると、それから他の値を決定できるように、強度を表現するためにチャネルの1つを取ることができます。これが動作しても保証はありません。
編集: 私は上記のアイデアを示すスニペットを書きました。私はRGB888を使用しましたが、アサーションを破棄し、コメントに記載されているようにピクセルの最大輝度を変更した後にRGB 565でも動作するはずです。 1ピクセルあたり2〜5の異なる強度レベルしかないことに注意してください。したがって、平均強度のスケーリングされたバージョンを使用することができます。
私はhttp://www.smashingmagazine.com/2008/06/09/beautiful-black-and-white-photography/の画像を使用してテストしました。私はそれがあなたのためにアンドロイドにこれを移植するうまくいくことを願っています。
// 2^5 for RGB 565
private static final int MAX_INTENSITY = (int) Math.pow(2, 8) - 1;
public static int calculateIntensityAverage(final BufferedImage image) {
long intensitySum = 0;
final int[] colors = image.getRGB(0, 0, image.getWidth(),
image.getHeight(), null, 0, image.getWidth());
for (int i = 0; i < colors.length; i++) {
intensitySum += intensityLevel(colors[i]);
}
final int intensityAverage = (int) (intensitySum/colors.length);
return intensityAverage;
}
public static int intensityLevel(final int color) {
// also see Color#getRed(), #getBlue() and #getGreen()
final int red = (color >> 16) & 0xFF;
final int blue = (color >> 0) & 0xFF;
final int green = (color >> 8) & 0xFF;
assert red == blue && green == blue; // doesn't hold for green in RGB 565
return MAX_INTENSITY - blue;
}
1
これは私が意味したことです。ありがとうございます。これは誰かを助けることができますか?私は各ピクセルの強度0..255を取得し、平均を取得します。
Bitmap cropped = Bitmap.createBitmap(myImage, 503, 270,myImage.getWidth() - 955, myImage.getHeight() - 550);
Bitmap cropped2 = Bitmap.createBitmap(cropped, 0, 0,cropped.getWidth() , cropped.getHeight()/2);
final double GS_RED = 0.35;
final double GS_GREEN = 0.55;
final double GS_BLUE = 0.1;
int R, G, B;
int result = 0;
int g = 0;
int ff;
for(int x = 0; x < cropped2.getWidth(); x++)
{
int ff_y = 0;
for(int y = 0; y < cropped2.getHeight(); y++)
{
Pixel = cropped.getPixel(x, y);
R = Color.red(Pixel);
G = Color.green(Pixel);
B = Color.blue(Pixel);
ff = (int)(GS_RED * R + GS_GREEN * G + GS_BLUE * B) ;
ff_y += ff;
}
result += ff_y;
g = result/(cropped2.getWidth()*cropped2.getHeight());
}
Toast.makeText(this, "00" + g, Toast.LENGTH_LONG).show();
関連する問題
- 1. イメージの各ピクセルの強度を取得する方法。私は画像内の高輝度ピクセルを計算したい
- 2. UIScreen輝度プロパティ
- 3. FlashLED輝度コントロール
- 4. アンドロイドカメラのプレビュー画面輝度
- 5. Windows CE 6.0のバックライト輝度コントロール
- 6. iOSのバックライト輝度を制御する
- 7. 輝度、ファインダーパターン、エラー修正レベルのzxingチェック
- 8. 自動輝度レベルを取得
- 9. RGBピクセルの透明度
- 10. NSDATAに0から255(1バイト)の整数を変換する
- 11. 0を含むピクセルの検索
- 12. java androidの各ピクセルをループする
- 13. BYTEバッファ(0-255)を浮動バッファ(0.0-1.0)に変換する
- 14. Java(ServletOutputStream)でASCII 0-255を書き込むデータ型
- 15. 255以上の整数でのキャストキャスト255
- 16. 輝度、Lab、sRGB空間の明度ヒストグラムをJavaで作成する
- 17. iphoneシミュレータの輝度は調節可能ですか?
- 18. CocoaでAppleロゴの輝度を上げますか?
- 19. 画像の輝度/明るさを確認
- 20. ガンマ、輝度、コントラスト補正の標準シーケンスはありますか?
- 21. AVFoundationを使用したビデオピクセルの処理輝度値(Y ')
- 22. iOS 5の画面輝度値を取得する
- 23. CSS3でボタンが輝く/輝く
- 24. ピクセル値からの角度の計算
- 25. 角度カルマファントム各フックエラー
- 26. org.postgresql.util.PSQLException:ERROR:(255)
- 27. Pythonでsys.exit()の0-255の範囲制限をバイパスする方法は?
- 28. 0から255まで生成するArrayListの作成方法は?
- 29. exec return 255
- 30. ラスターレンガのグローバル統計をピクセル無視の値0
私はそれを理解しています - 黒は0、白は255です。各ピクセルの値を知り、それを追加して他のラスタと比較するための番号を取得する必要があります。これを行う方法?悪い英語を申し訳ありません。 – Domos