DOBON.NET DOBON.NETプログラミング掲示板過去ログ

白黒のグレースケール表示したい

環境/言語:[2003]
分類:[.NET]

現在、TIF形式のファイル(白黒)をPictureBoxに取り込んで表示しています。
これをグレースケール表示したいのです。
KEN's .NET の 『VB.NETに関するメモ書き』No23:[ 画像処理 ]
にRGB形式の場合のソースコードが示されていますが、
白黒の場合はどうすればいいのでしょうか?
ご存知の方、ご教示願います。
h.hayashiさん、こんんちは
http://www.bobpowell.net/grayscale.htm
こちらにサンプルありますよ。
■No4741に返信(ゆさんの記事)
h.hayashi(林)です。

> h.hayashiさん、こんんちは
> http://www.bobpowell.net/grayscale.htm
> こちらにサンプルありますよ。
>

早速のRESありがとうございます。
しかしながら、ご指摘のコードではカラーを白黒に表示する
ことはできても、グレースケール表示はできませんでした。

私の説明が曖昧でした。
もうしわけありません。
下記に詳しく書きます。

手書き文書をモノクロ二値の設定でスキャナから読み込み、TIF形式で保存します。この読み込みは他アプリでやっています。

開発中のアプリ(VB.NET 2003)では下記の処理を行おうとしています。

上記ファイルをフォーム上のPictureBoxに読み込みグラフィック表示します。
白黒表示はできていますが、元の手書きが薄すぎると、PictureBox上では表示が薄く(灰色っぽく)なったり、点々になってしまいます。
スキャナの読み取り濃さを調整すれば解決できる場合もありますが、この場合では、画面上のイメージがすすけてしまいます。

以上の問題点をグレースケール表示で解決したいのです。
解決できるならば、他の手段でも歓迎します。

※400件ぐらいのイメージに対して 表示→非表示 を繰り返すシステム
を作ろうとしているので、表示するまでの待ち時間も考慮したいのです。
※スキャナの設定は200dpiで、原紙サイズはB5,B6です。
h.hayashiさん、こんにちは
> 手書き文書をモノクロ二値の設定でスキャナから読み込み、TIF形式で保存します。この読み込みは他アプリでやっています。
モノクロ2値ということは、白か黒かだけのデータということですよね?
元データが白と黒のものをグレースケールで表示するということですか??
点の間を補完したりするのでしょうか?
私、TIF形式の事はよくしらないので変なこと言ってたらすいません^^;
2004/07/08(Thu) 17:32:42 編集(投稿者)

KEN's .NETのよねKENです。

■No4761に返信(h.hayashiさんの記事)
> 上記ファイルをフォーム上のPictureBoxに読み込みグラフィック表示します。
> 白黒表示はできていますが、元の手書きが薄すぎると、PictureBox上では表示が薄く(灰色っぽく)なったり、点々になってしまいます。
> スキャナの読み取り濃さを調整すれば解決できる場合もありますが、この場合では、画面上のイメージがすすけてしまいます。
>
> 以上の問題点をグレースケール表示で解決したいのです。

そういう処理をグレースケール化とはいいません。
ゆさんもNo4763で指摘されていますが、
白と黒の間を灰色で補完するような処理になるでしょう。

しかし、投稿の説明にある

「元の手書きが薄すぎると、PictureBox上では表示が薄く(灰色っぽく)なったり」

この状況こそが補完処理(アンチエイリアスかな?)を行った結果のはずなので、
それ以上の精度を得るには、スキャナ自体の性能を上げるしかないのでは?

少なくとも(スキャナからの取り込み段階ですでに)加工済のデータに対して、
どんな加工を施しても、それよりも見栄えをよくするのは難しい気がします。
といっても不可能かどうかは私にもわかりませんので、
補完処理について調べて見るとよいと思います。
■No4767に返信(よねKENさんの記事)

よねKENさん、ご指摘ありがとうございます。

> 2004/07/08(Thu) 17:32:42 編集(投稿者)
>
> KEN's .NETのよねKENです。
>
> ■No4761に返信(h.hayashiさんの記事)
>>上記ファイルをフォーム上のPictureBoxに読み込みグラフィック表示します。
>>白黒表示はできていますが、元の手書きが薄すぎると、PictureBox上では表示が薄く(灰色っぽく)なったり、点々になってしまいます。
>>スキャナの読み取り濃さを調整すれば解決できる場合もありますが、この場合では、画面上のイメージがすすけてしまいます。
>>
>>以上の問題点をグレースケール表示で解決したいのです。
>
> そういう処理をグレースケール化とはいいません。
> ゆさんもNo4763で指摘されていますが、
> 白と黒の間を灰色で補完するような処理になるでしょう。
>
> しかし、投稿の説明にある
>
> 「元の手書きが薄すぎると、PictureBox上では表示が薄く(灰色っぽく)なったり」
>
> この状況こそが補完処理(アンチエイリアスかな?)を行った結果のはずなので、
> それ以上の精度を得るには、スキャナ自体の性能を上げるしかないのでは?
>
> 少なくとも(スキャナからの取り込み段階ですでに)加工済のデータに対して、
> どんな加工を施しても、それよりも見栄えをよくするのは難しい気がします。
> といっても不可能かどうかは私にもわかりませんので、
> 補完処理について調べて見るとよいと思います。
>

補完処理について調べてみます。
■No4763に返信(h.hayashiさんの記事)
■No4767に返信(h.hayashiさんの記事)

h.hayashiです。

補完処理について調べたところ
最近傍法,線形補完法,3次補完法,面積平均法(積分法)
の方法があることがわかりました。

将来はこれらを試してみることもあるかもとは思いますが、
使用スキャナのドライバーにγ値補正のユーティリティが添付されているのを見つけ、
試しにそれを使ってγ値を上げてみたところ、
充分使えそうだったのでこれで対応します。

ゆさん,よねKEN
ありがとうございました。
■No4789に返信(h.hayashiさんの記事)

h.hayashiです。

解決済みとさせていただきます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板