問題タブ [image-formats]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - NumPy でバイナリ データを BGRA イメージとして読み取る
次の形式(シリアル)でバイナリファイルにダンプされたBGRAイメージがあります:[(b、g、r、a)、(b、g、r、a)、(b、g、r、a).. .] 画像の幅、高さ、チャンネル数を知っています (この場合はもちろん 4 つです)。
最初の次元が B 値などを表す 4D 配列に画像を読み込みたいとします。次のコードがあります。
これは次のようなものを出力します:
79 は B、90 は G、92 は R、0 は A などです。今、私は次のように「データ」を再形成しようとしました:
以下を得ました:
私が取得したいのは次のようなものです:
android - Android - BMP を 8 ビット深度の JPEG に変換する
BMP 形式でキャプチャされた指紋画像があります。コードは以下の通りです。
BMP ファイルを 8 ビットの深度で JPEG に変換する必要があるという要件があります。誰か助けてくれませんか?
c++ - Boost GIL を使用してイメージ ファイル タイプを検出できない (例外がキャッチされない)
ファイルが JPEG か PNG かをテストする必要がありますが、ファイル拡張子が間違っている可能性があるため、信頼できません。これを実現するために、GIL を使用することにしました。
宣言 (および定義) するヘッダー ファイルを次に示しboost::gil::png_read_dimensions
ます。boost::gil::png_read_dimensions
「場所が有効なPNGファイルに対応していない場合、std::ios_base::failureをスローします」と明確に述べています。実際、これは関数の実際の動作と同等のようです。
問題は、ここでboost::gil::jpeg_read_dimensions
見ることができるものです。また、 「場所が有効な JPEG ファイルに対応していない場合、std::ios_base::failure をスローする」ことも明確に述べています。しかし、そうではないようです!例外はスローされず、代わりに stdout または stderr に出力され、プログラムが終了します。libjpeg
次のコードを参照してください。
プログラム出力:
what: ... yadiyadiyada ...
とDone.
が印刷されていないことに注意してください。
例外が見過ごされずに成功しないようにする} catch(...) {
代わりに、試してみました。} catch(const ios_base::failure &ib_f) {
例外はスローされません。
ここで本当に明らかな何かが欠けていますか...?私は何か間違ったことをしていますか?回避策はありますか?
image-processing - 画像フォーマット メモリ内の NV12 ストレージ
質問に記載されている NV12 フォーマットのサイズについて完全に理解しています
現在、この形式での UV プレーンのストレージに関する 2 つの情報源から読んでいます。
NV12
すべての Y サンプルは、偶数行の unsigned char 値の配列としてメモリに最初に表示されます。Y プレーンの直後には、パックされた U (Cb) および V (Cr) サンプルを含む unsigned char 値の配列が続きます。結合された UV 配列がリトル エンディアンの WORD 値の配列としてアドレス指定される場合、LSB には U 値が含まれ、MSB には V 値が含まれます。NV12 は、DirectX VA で推奨される 4:2:0 ピクセル形式です。これは、4:2:0 ビデオをサポートする DirectX VA アクセラレータの中期的な要件になると予想されます。次の図は、Y 平面と、パックされた U および V サンプルを含む配列を示しています。
私が理解しているのは、UV プレーンでは、各 U と V が single byte に格納されていることです。
これについてウィキペディアから読んだとき: https://wiki.videolan.org/YUV#NV12
それは言います:
NV12
I420 に関連して、NV12 には 1 つの輝度「ルミナンス」プレーン Y と、U 値と V 値がインターリーブされた 1 つのプレーンがあります。NV12 では、クロマ プレーン (青と赤) は、水平方向と垂直方向の両方の次元で 2 倍にサブサンプリングされます。ピクセルの 2x2 グループの場合、4 つの Y サンプルと 1 つの U および 1 つの V サンプルがあります。NV12 を、U プレーンと V プレーンがインターリーブされた I420 と考えると便利です。これは NV12 のグラフ表示です。各文字は 1 ビットを表します: 1 NV12 ピクセルの場合: YYYYYYYY UVUV 2 ピクセル NV12 フレームの場合: YYYYYYYYYYYYYYYY UVUVUVUV 50 ピクセル NV12 フレームの場合: Y*8*50 (UV)*2*50 n ピクセル NV12 フレームの場合: Y*8*n (UV)*2*n
ここで私が理解しているのは、各 U と V が各バイトでビットごとにインターリーブされていることです。したがって、UV プレーンの各バイトには、インターリーブされた 4U ビットと 4V ビットが含まれます。
誰かが私の疑問を明確にすることができますか?
python - PILで画像のフォーマットを取得するには?
PIL.Image で画像ファイルを読み込んだ後、画像ファイルが PNG/JPG/BMP/GIF かどうかを判断するにはどうすればよいですか? これらのファイル形式についてほとんど理解していません。PILformat
はファイル ヘッダーからメタデータを取得できますか? それとも、ファイル内のデータを「分析」する必要がありますか?
PIL がそのような API を提供しない場合、提供する Python ライブラリはありますか?
android - setParameters failed Android カメラ - 解像度は正しい
これが私のカメラのセットアップです:
ImageFormat を設定するとsetParameters failed
エラーが発生します。したがって、問題は明らかに解像度ではありません。デバイスでサポートされている画像/プレビューの解像度も確認したので、問題はありません。
この画像形式は、すべてのデバイスで互換性があるはずです...どうしたのですか?
android - 画像フォーマット NV21 とそれが持っているように見えるさまざまなメモリ レイアウトに関する混乱
上記の形式の画像を処理する必要があります。しかし、私はそれについて相反する情報を見つけました。
別のスタックオーバーフローの回答によると、UV値は互いに続きますが、ウィキペディアによると、V値はメモリ内のU値の後にあります。どちらが正しいか、または両方が正しい場合、違いは何ですか?
NV12 対 NV21 の問題でしょうか? ただし、このサイトでは、単に切り替える必要があると述べています。
これらの用語が何を意味するのかはわかりませんが、画像が平面、半平面、または平面ではないことに関係しているのかもしれません。
誰かがこれを少し明確にすることができますか?