アフィリエイト広告を利用しています
ファン
検索
<< 2023年12月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
最新記事
(12/20)KI cad インストールしてみよう
(04/11)【JAVA】チョロメを外部から動作させます。 幽霊が操作してるような
(07/29)spartan3 を cy7c68013 のバルクライトで シリアルコンフィグしてみた
(07/28)ブログ村に参加してみた。いまとのころブログ村からはだれもこない^^;
(07/28)PIC16F1503 を使ってみようかな?? MPLAB 内部クロック
(07/01)からっぽのつぎ のページ きっとはげ に なんか作用するかも
(05/06)GCEでワードプレス 第2 困ったのでやり直し手順
(05/05)https://certbot.eff.org/lets-encrypt/centosrhel7-apache をみてハマったこと
(04/28)フェドラ をつかって switchbot をアクセス する。  ? 未解決
(04/02)【オープンVPN】setsebool -P openvpn_enable_homedirs 1 でうごいた
(04/01)【QT5】わからないのでタイムアウトで自動でキャンセルボタン押すメッセージボックスつくってみた
(03/31)qt5よくわからんのだが メッセージボックスの OKスイッチをタイマーで押してみた。
(03/09)【boost】message queue 使い方 目も目も
(03/08)【バカの一つ覚え】ユニークID作成とそのちょっとした応用
(03/04)【パソコン】【GPIO】いったいこれは?
(02/26)【VHDL入門】ABZ信号から Hsync Vsyncを作り出してみよう その2
(02/26)【VHDL入門】ABZ信号から Hsync Vsyncを作り出してみよう その1
(02/26)【VHDL入門】速度比較 エンコーダーABZ相 ソースファイル付き
(02/25)【VHDL入門】ロータリーエンコーダABZ 出力のサンプル 200Mhz動作?
(02/23)【VHDL入門】UART 送受信繰り返しのテストベンチ作成してみたい
最新コメント
カテゴリーアーカイブ
プロフィール
有象無象さんの画像
有象無象
はげはじめました 禿増されます。励ましのコメントお待ちしてます。  
プロフィール

広告

posted by fanblog

2020年10月16日

anndoroid studio USBカメラをキャプチャしたとき ガミラス人の顔が写るんです

anndoroid studio USBカメラをキャプチャしたときの怪奇現象
青い 昔の ガミラス人の顔が写った。
 原因不明 パット見た感じ 赤と青が入れ替わったような画像がでてきてびっくり

仕方がないので
 RとBを入替えて キャプチャしたら まともなような気がする。
 なんでだろう ♪ なんでだろう? ♪♪♪♪♪ なんでガミラス人♪ちゃんちゃんと

色だけ入替えてみた


このディレクトリに書くと google photo でみた時 ライブラリというアイコンをタップすると見えた
どこに保存されているのかしらないが google photo でみえたのでいいことし
public static final String DIRECTORY_NAME = "Pictures";

 キャプチャした画像を保存したい path 例としてはこんな感じだ
  String picPath = UVCCameraHelper.ROOT_PATH + DIRECTORY_NAME +"/cap" +    
         System.currentTimeMillis() + UVCCameraHelper.SUFFIX_JPEG;

  カメラから取り込まれた 画像データdata
  これは  public void onPreviewResult(byte[] nv21Yuv,int mWidth,int mHeight)
   からもらってきたものだ。 幅も高さも取り込まれたときにわかるのだ
 
   これらを JPEGにしたいのだが こんな調子でつくる
   カメラからは nv21Yuv の形式でデータがくると思ってたのだけど R,Bが入れ替わってるなぁ
   ここがなんでだろう ?なんでだろう? わからん
 とったデータを ファイルに書き込む
  
private void saveYuv2JpegUVCcammera(String path, byte[] data,int mWidth,int mHeight)
{
int[] mIntArray = new int[mWidth*mHeight];
{
decodeYUV420SP(mIntArray, data, mWidth, mHeight);
Bitmap bmpfromRGB = Bitmap.createBitmap(mIntArray, mWidth, mHeight, Bitmap.Config.ARGB_8888);

try {
FileOutputStream fos = new FileOutputStream(path);
bmpfromRGB.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}

ここからは 見てもわかんないのだけど yuv420を RGBにするらしい

  static public void decodeYUV420SP(int[] rgb, byte[] yuv420sp, int width, int height) {
final int frameSize = width * height;

for (int j = 0, yp = 0; j < height; j++) {
int uvp = frameSize + (j >> 1) * width, u = 0, v = 0;
for (int i = 0; i < width; i++, yp++) {
int y = (0xff & ((int) yuv420sp[yp])) - 16;
if (y < 0) y = 0;
if ((i & 1) == 0) {
v = (0xff & yuv420sp[uvp++]) - 128;
u = (0xff & yuv420sp[uvp++]) - 128;
}
int y1192 = 1192 * y;
int r = (y1192 + 1634 * v);
int g = (y1192 - 833 * v - 400 * u);
int b = (y1192 + 2066 * u);

if (r < 0) r = 0; else if (r > 262143) r = 262143;
if (g < 0) g = 0; else if (g > 262143) g = 262143;
if (b < 0) b = 0; else if (b > 262143) b = 262143;

// rgb[yp] = 0xff000000 | ((r << 6) & 0xff0000) | ((g >> 2) & 0xff00) | ((b >> 10) & 0xff);
rgb[yp] = 0xff000000 | ((b << 6) & 0xff0000) | ((g >> 2) & 0xff00) | ((r >> 10) & 0xff);
}
}
}
とにかく RとBをいれかえて ビットマップにして書き込みするとできた
だからいったいのなんなのだろう
【このカテゴリーの最新記事】
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/10274810
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は30日以上新しい記事の更新がないブログに表示されております。