OpenCvとC++を使用してJPEG画像をDCT 8x8に変換するにはどうしたらいいですか?JPEGをDCTに変換する方法8 x 8?
答えて
あなたが達成しようとしているところには意味がないと思います。 JPEG画像は既にDCTでいっぱいです。あなたは何をしようとする最初に理解する必要があり、OpenCVの+ C++のみメシエ
私はJPEG画像に透かしを入れようとしています。私がそれをするには、画像を8x8のより小さいブロックに変換しなければならない。そして、「PEG画像は既にDCTでいっぱいです」という意味はどうですか? – stbb24
私はあなたがいくつかの読書をすることをお勧めします--JPEGウィキペディアのエントリーはおそらく良い出発点でしょう。 – ZungBang
@ stbb24:JPEGは画像データを圧縮するために内部的にピクセルのブロックでDCTを使用します。ウォーターマークを追加するには、95%はそのようなことに対処したくないと確信しています。 libjpeg(またはその他の代替ライブラリ)を使用し、JPEGを通常のRGB(または快適な場合はYUV)に圧縮解除し、画像にウォーターマークを適用して圧縮します。 DCTの特定のブロックだけを取り出し、修正してウォーターマークを適用して保存することが確実な場合は、libjpegの詳細を理解する必要があります。メーリングリストに尋ねるそのようなことが可能なら、私はあなたが迅速な解決策を得るだろうと確信しています。 – Pavel
libjpegはあなたの友達です作る...
次のコードスニペットは、JPEG画像からDCT係数をロードします(免責事項:それは引かれています私の4歳のプロジェクトオフ - メーリングリストへ):
struct jpeg_decompress_struct srcinfo;
struct jpeg_error_mgr jsrcerr;
jvirt_barray_ptr * src_coef_arrays;
FILE * fp;
srcinfo.err = jpeg_std_error(&jsrcerr);
jpeg_create_decompress(&srcinfo);
fp = fopen(filename, "rb");
jpeg_stdio_src(&srcinfo, fp);
(void) jpeg_read_header(&srcinfo, TRUE);
src_coef_arrays = jpeg_read_coefficients(&srcinfo);
fclose(fp);
...
// use coefficients
...
(void) jpeg_finish_decompress(&srcinfo);
jpeg_destroy_decompress(&srcinfo);
係数へのアクセスビット毛深いです - 私はあなたがのlibjpegに同梱されますjpegtranユーティリティのソースコードを参照してください、それはそこに行うのかを確認することをお勧めします。
より完全な例がここにあります:http://stackoverflow.com/a/4497493/27831 – ZungBang
- 1. 変更されたJPEGデコーダのための8ポイント1d DCTの高速実装
- 2. JIS X 208コードをPythonのUTF-8に変換する
- 3. UTF-8変換?
- 4. RGB565をグレースケール(8ビット)に変換する
- 5. TYPO3 7.6.xを8.x.0にアップグレードする方法
- 6. gdで8ビットjpegを作成する方法
- 7. C++で小数点以下(1/8、3/8、5/8、7/8)をUTF-8に変換する
- 8. 非UTF-8ファイルとUTF-8-BOMファイルをUTF-8に一括変換する
- 9. Latin-1をElixirでUTF-8に変換する方法
- 10. クエリレベルでDB2バイナリデータをUTF-8に変換する方法
- 11. ユーザ入力をUTF-8に変換する最良の方法
- 12. PHP DomCrawlerの文字列をUTF-8に変換する方法
- 13. ファイルディレクトリをJavaでInputStreamのリストに変換する方法8
- 14. UTF-8文字をISO Latin 1に変換する方法は?
- 15. xcode 8 storyboardをxcode 9に変換する方法
- 16. マップをJavaのリストに変換する方法8
- 17. 単語 ''をutf-8からgbkに変換する方法
- 18. BMPイメージを8ビットのグレースケールに変換する方法
- 19. CSVをPHPでUTF-8に変換する方法
- 20. 日付を8桁の整数に変換する方法は?
- 21. 2進数を8進数に変換する方法は?
- 22. js文字列をutf-8に変換する方法
- 23. 64ビットの数値を8ビットに変換する方法
- 24. ヘキサを20CD.45の8進数に変換する方法は?
- 25. JPEGをEXIF形式のJPEGに変換する方法1?
- 26. 高速DCT変換
- 27. utf-8テキストをUILabelに変換する
- 28. ループをJava 8ストリームに変換する
- 29. PythonをJava 8に変換する
- 30. 8ビットバイナリベクトルを1グレースケールピクセルに変換する
あなたはこれまで何をしていますか? – chikuba
OpenCVのドキュメントを読むことから始めて – Pablo