問題タブ [boost-gil]
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.
c++ - BOOST::GIL を使用して CYMK 画像を RGB に変換する
CYMK 画像を RGB に変換するために boost 汎用画像ライブラリを使用しようとしています。
次のコードはコンパイルされません
誰でもこれを修正する方法を知っていますか?
このコードはチュートリアルコードに基づいています
コンパイラの出力は次のとおりです。
c# - 一般的な画像処理ライブラリのC#設計ガイダンス
どの画像処理ライブラリでも、すべての単一の画像形式(色空間、チャネル、ビット深度、メモリレイアウトなど)に対してすべての単一のアルゴリズムの実装を提供する必要があるという問題が常にあります。この問題に対する非常に洗練された解決策の1つは、BoostGILです。C ++のパワーと優れたデザインにより、これらの問題はすべて抽象化され、あらゆるタイプの画像で機能する単一のアルゴリズムを作成できます。
C#で似たようなものを作成したかったのですが、テンプレートや特定の演算子のオーバーロード(単項*など)などの必要な構成要素の多くが欠落しています。私が作成できるものはGILほど堅牢でエレガントではないことを受け入れたいと思いますが、可能な限りコンセプトをモデル化したいと思います。最終的には、画像の違いを抽象化し、一般的な処理アルゴリズムを作成することが目的になります。
C#、ジェネリック、ラムダ、さらには動的IL / cringeで利用できるものがあるので、ライブラリを設計するためのいくつかの可能なアプローチは何だと人々は思いますか?
boost - Boost ::GILをPNGおよびJPEGIOで動作させる方法は?
Boost::GILにはほぼ完璧なチュートリアルとマニュアルがあります。Boost::GILをPNGおよびJPEGIOで動作させるためのガイドが不足しているのは面倒です。誰かが経験を持っているか、それをうまくやったことがありますか?ご教授ください!ありがとう!
編集:
答えはここにあります:http://opensource.adobe.com/wiki/display/gil/Downloads
macos - LibPNG + Boost::GIL: png_infopp_NULL が見つかりません
Boost::GIL PNG IO サポートを使用してファイルをコンパイルしようとすると、常に次のエラーが発生します。
(Mac OS X Leopard と Boost 1.42、LibPNG 1.4 を実行しています)
c++ - ブースト::ギル均質ピクセルタイプからチャネルPODタイプを抽出する方法は?
でテンプレート化されたクラスがあり、のピクセル タイプの<PIXEL>
1 つと見なされます (今のところ、 または のいずれかのみであり、今後は同種のピクセル タイプのみをサポートする予定です)。boost::gil
gray8_pixel_t
gray16_pixel_t
rgb8_pixel_t
クラスは、ピクセル タイプを保持するunsigned char
か、適切なタイプを取得する必要があります。unsigned short
これはピクセルクラスのどこかに埋もれていると思いますが、どれもPIXEL::value_type
、PIXEL::channel_type
またはPIXEL::channel_type::value type
私が望むものではないようです。
トリックは何ですか?
(もちろん、テンプレートに特化したヘルパー構造体を介して型間接化を使用して、この情報を取得することもできます。
しかし、私がそれを見つけることができれば、確かにGILはすでに同等のものを提供しているに違いありません...)
c++ - GILイメージコンストラクターをブーストする
私は現在、Boostに含まれているGenericImageLibraryの使用方法を理解しようとしています。今のところ、ライブラリを使用してピクセルデータを保存し、ImageIOを使用してPNGを記述したいと思います。しかし、オブジェクトの設定方法を理解するのに苦労しています。
hppは言う
しかし、view_t::point_tからpoint_tへのtype_def以外のpoint_tへの参照は見つかりません。
また、GILで見つかったチュートリアルには、書き込みフィルターと一般的なアルゴリズムのみが含まれているようです。したがって、GILが提供する各関数の例には、ディメンションを取得するソースイメージビューがあります。
私はこれを間違った方法で行っていますか?それとも私が完全に見逃したものはありますか?
前もって感謝します
編集:誰かが気にかけているか、これを読んだかどうかはわかりませんが、記録のために、ブーストインターリーブ画像機能を使用してPNGを作成しました。これはまったく同じソリューションではありませんが、私のアプリケーションでは機能します。
c++ - boost::gil Interleaved_view
ブースト画像ライブラリを理解するのに苦労しています。
boost::gil ライブラリに含まれている interleaved_view 関数の使用方法に関する正確なドキュメントは見つかりませんでした。より具体的には、生データがどのバイナリ形式で保存されることになっているのか正確にはわかりません。
私が見つけた唯一の言及は、ギルのチュートリアルでした:
また、関数プロトタイプは言う
私の質問は、バイナリ形式で gil が期待する形式とは正確には何ですか?
以前にインターリーブされた画像を見たのは、OpenGL を使用したときだけでした。これは、隣同士に格納された各ピクセルの RGB 情報にすぎませんでした。rowsize_in_bytes は文字通りバイト単位のピクセル行のサイズになると思ったので、これで PNG を書き込もうとしました:
入力 src は、サイズ w*h のフラットな配列であり、フォーマット
画像は、黒い背景に白い箱だけでした。しかし、得られた結果はかなり... 奇妙なものでした
なぜこれが起こったのか、そしてinterleaved_viewが実際にどのように機能するのか、誰かが知っているなら、それは素晴らしいことです. 前もって感謝します!
編集:申し訳ありませんが、私は自分のばかげた間違いに気づきました。私は今それを機能させました... :(問題は画像の形式ではなく、列優先ではなく行優先でした
c++ - Boost.GIL を使用する必要がありますか?
私は Boost.GIL のクリーンなアプローチが実際に好きです。標準化されたライブラリはクールで、アドビは確かにそれにいくつかの考えを入れていますが、OpenCV などのライブラリと比較すると、その機能セットはわずかです。GIL をどのような目的で使用していますか?
c++ - boost::gil::color_converted_view を boost::gil::for_each_pixel で使用する
gil::color_converted_view
への書き込みは、基になるビューのデータに影響を与えないことに気付きました。それが正しいのだろうか?
たとえば、赤チャンネルの値を取り、青チャンネルの値をその半分に設定するプログラムを書きたいとしましょう。これが私の失敗した試みです:
ただし、SrcView
実際に がの場合にのみ機能しgil::rgb8_view_t
ます。たとえば を呼び出すとhalf_red_to_blue<gil::bgr8_view_t>(view)
、ビューはまったく変更されません! デバッガーで少し調べたところ、書き込み操作が元のピクセルではなく、ある種のプロキシの場所に書き込まれているようです。
何か案は?前もって感謝します!
image - Boost::GIL がメモリから画像を読み込む
Boost::Gil フレームワークのメモリから画像 (jpeg、png など) をロードできるようにする必要があります。それを行う方法はありますか?
回答ありがとうございます。