• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像の抽出)

VB2008を用いた画像の抽出

このQ&Aのポイント
  • VB2008を用いて、原画像と原画像に落書きをした画像の2枚を用いて、落書きのみを抽出するプログラムを作成していますが、RGBの演算がうまくできません。
  • コードを確認し、カラーチャネルの計算が正しく行われているかを確認してください。
  • また、値が負の場合に正しく処理されるように条件文を追加しましょう。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こちらに訂正しておきます。 別々に比較せずとも If col1 <> col2 Then bmp3.SetPixel(i, j,col1) End If で落書き部分が抽出できませんか。

zyogee
質問者

お礼

まさに If col1 <> col2 Then bmp3.SetPixel(i, j,col1) End If で落書きの抽出が出来ました。こんな簡単に出来てしまい感動しました!! ご指摘本当にありがとうございました!

その他の回答 (1)

回答No.1

> r3 = r1 - r2   > g3 = g1 - g2 > b3 = b1 - b2 この部分は、何をしておられるのでしょうか? 落書きした点かどうかを調べるのなら、元の画像の色と違う点が 落書きしたところになるのではないですか? R,G,B の値のどれか一つでも違っていたら落書きしたドットとなる。 但し、元の画像と同じ色で落書きした分は、書いた事にはならない。 If (r1 <> r2) or (g1 <> g2) or (b1 <> b2) Then 落書きした箇所 End If

zyogee
質問者

お礼

> r3 = r1 - r2   > g3 = g1 - g2 > b3 = b1 - b2 この部分で落書き箇所以外のRGB値を0にして、落書きのみのRGB値を書き込もうと考えて記述しました。 よくよく考えたらRGBの値で引いても落書きのRGB値は出ませんよね… 勘違いしてました。ありがとうございますm(_ _)m

関連するQ&A