JPEG ファイルの 64 個の DCT 係数の周波数分布を取得するには、Java ライブラリ、コード スニペット、... が必要です。
何か案は?どうも!
特定のファイルの配布に興味がある場合は、それを bmp に変換して、私の質問で提供されているコードを使用してみてください。
解凍が途中で停止し、ゼロで埋められた出力ファイル (BLACK PIXELS)?
Java で動作させるには、これを弱める必要があるかもしれません。アイデアは、各 8*8 ブロックの配列に 64 個の係数すべてを格納することです。次に、0,0(DC)、0,1、8,8(最高周波数)などの各係数番号の各値の周波数をカウントし、y 軸に周波数、x 軸に値をプロットします。係数ごとに 1 つずつ、合計 64 のプロットが得られます。
JPEG ファイルから DCT 係数を直接取得する簡単な答えはないようです。画像を圧縮解除して DCT 変換を再適用することは合理的な近似ですが、丸め誤差が発生する傾向があります。
ファイルから直接 JPEG 係数を取得するために私が見つけた唯一の解決策は、JNA を使用してネイティブ JPEG ライブラリに接続することでした。ライブラリまたはコード スニペットを要求しました。あなたのニーズを満たす Java ライブラリを作成しました。私のコードは非常に粗雑ですが、簡単に拡張できます。ここ: https://github.com/markzampoglou/dct-extraction