画像処理について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ubuntu

画像処理について

#1

投稿記事 by ubuntu » 16年前

いつもお世話になっております。
今回画像処理の学習をする中で、まだ初心者なので分からない部分が多々あり質問させてもらいます。
今表色系の変換でRGB値をXYZ値に変換するプログラムを組もうとしているのですが、いろいろ調べた結果、
X=2.7689*R+1.7517*G+1.1302*B
Y=1.0000*R+4.5907*G+0.0601*B
Z=0.0000*R+0.0565*G+5.5943*B
この変換式を用いて各ピクセルの値を変換することまでは分かったのですが、実際プログラムを組む際にどのような手順で組んでいいのか分からずこの場で質問させてもらいました。
何か良いアドバイスお願いいたします。

fumi

Re:画像処理について

#2

投稿記事 by fumi » 16年前

RGB値が事前にわかっているなら、変換式に代入するだけなのですが…

もしかしてビットマップなどのファイルのRGB値を読み込んで変換したいということでしょうか?
もしそうなら、DXライブラリの関数を用いるか、バイナリでファイルを読み込みビットマップのフォーマットを調べ、生の画像データ(RGB値)を取り出す必要があります。

あと、変換式が違うかと思います。

ttp://image-d.isp.jp/commentary/color_cformula/XYZ.html

s-rush

Re:画像処理について

#3

投稿記事 by s-rush » 16年前

DXライブラリを使用しないのであれば、fumiさんのおっしゃるように
バイナリでファイルを読み込む必要がありますね。

手順としては、
fopneでビットマップのファイルを読み込む。
(情報ヘッダの読み込み)
メモリの(動的)確保
freadでデータ部の読み込み
RGB→XYZ変換

といった感じでしょうか?

そこからさらに画像ファイルとして出力するのであれば
(XYZ変換をよく知らないので、画像出力する必要があるのかどうかわかりませんが^^;)
fwriteでデータ部をバイナリに書き込みをすればOKです。


多少端折っている部分もありますが、流れとしてはこんな感じです。

閉鎖

“C言語何でも質問掲示板” へ戻る