こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

RGB画像をYIQに変換・抽出

今VB6で画像(RGB)から(YIQ)に変換し各Y・I・Qの情報を画像として抽出したいのですが方法がわかりません。抽出した各情報をグレースケール(モノクロ)で表示する方法がわかる方がいましたら、お力をお貸しください。よろしくお願い致します。

投稿日時 - 2008-01-03 20:32:12

QNo.3647440

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

お示しのURL行列を見た限りでは
Iは 水色から赤色へのグラデーション
Qは 緑色から紫へのグラデーション
ともに数値が0に近づくに従い RGBは0.5(つまり256階調なら128)に近づくようにすればいいのかも ・・・
お示しのURLのカラーパレットで見ると少し違うようですが

カラーパターン(RGBの原色またはCYMの原色)といったもののサンプルが無いか確認されてみてはいかがでしょう

投稿日時 - 2008-01-06 05:01:32

ANo.1

RGBの取得には PictureBoxやFormにイメージを表示して
Pointメソッドを使えば取得できます
取得したデータ(LONG型)は BGRの順で並んでいます

RGB = POINT(x,y)
B = RGB / &H10000
G = (RGB / &H100) And &HFF
R = RGB And &HFF
で分解します
YIQへの変換は
Y = 0.2990 * R + 0.5870 * G + 0.1140 * B
I = 0.5959 * R - 0.2750 * G + 0.3210 * B
Q = 0.2065 * R - 0.4969 * G - 0.2904 * B
といった具合でしょう

RGBによるグレースケールなら RGB重み付けを加味しながら加算し平均をとればいいように思います
単純に色情報の平均なら
Gray = ( R + G + B ) / 3
重みを考慮するなら
Gray = ( 0.3 * R + 0.5 * G + 0.2 * B )
といった具合でしょう

投稿日時 - 2008-01-04 13:52:23

補足

お返事ありがとうございます。
私の質問のしかたが悪かったようで「Y」成分でグレースケールを抽出する事はできるのですが「I」、「Q」の成分を画像化したいのです。「Y」は輝度情報が取得でき、そのままRGB関数に変数で受け渡せば使えるのですが「I」と「Q]はそのままでは画像にできない数値になっていました。具体的にこのサイトのような一枚の画像から各成分の画像を抽出したいのです。「http://en.wikipedia.org/wiki/YIQ」(勝手にリンクを貼り付けてゴメンなさい!)。
お手数かけますが分かりましたら宜しくお願いいたします。

投稿日時 - 2008-01-04 15:01:04

あなたにオススメの質問