- PR -

VS2005 画像表示について4096階調の表示は可能でしょうか?

投稿者投稿内容
ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2008-03-27 17:36
お世話になっております。

XP VisualStudio2005 C#
を使用して、画像処理関連のアプリケーションを作成しています。

あるカメラから、16bit階調のデータって来まして、
それを、丸めることなく表示したいのですが
可能でしょうか?。
いろいろ調べたりしまして、データを丸めて256階調のグレースケールで
表示することはできました。

また、ImageJというソフトだと、16bit階調の表示できるのですが、
そちらはjavaで作られてるようなのですがjavaなどでは、表示できるのでしょうか?


よろしくお願いいたします。

Azulean
大ベテラン
会議室デビュー日: 2008/01/04
投稿数: 123
お住まい・勤務地: 大阪府
投稿日時: 2008-03-27 23:26
引用:

あるカメラから、16bit階調のデータって来まして、それを、丸めることなく表示したいのですが可能でしょうか?。


Windowsの標準的な環境ではR,G,Bの各要素が256段階、つまり256*256*256=16,777,216色が最大となっています。(最近はアルファもあるのかな?)
こう考えると、16bitのモノクロデータを丸めることなく表示というのはできないんじゃないですか?
#もちろん、Rに下位8bit、Gに上位8bitとかいうのは可能ですが視覚的に意味があるのかどうか謎です。

引用:

また、ImageJというソフトだと、16bit階調の表示できるのですが、
そちらはjavaで作られてるようなのですがjavaなどでは、表示できるのでしょうか?


16bitから何らかの方法で8bitに変換しているんじゃないですか?

結論
16bitを丸めることなく表示することはできないと思います。

備考
・System.DrawingあたりのBitmapクラス、GDI+は16bitデータを扱えません。
・WPFの方は16bit扱えたりしますが、画面に表示されるときには8bitになるんじゃないかなぁ。
ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2008-03-28 09:30
Azuleanさん
レスありがとうございます。

やっぱりできないのですね。。
御説明ありがとうございました
よくわかりました。

フルカラーを超えるDeep ColorとかHDMIなど
さらに表現能力が高くないとダメだということですね。

ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2008-03-28 10:24
たびたびすみません

>・WPFの方は16bit扱えたりしますが、画面に表示されるときには8bitになるんじゃないかなぁ。

WPFのSystem.Windows.Media.Imaging.RenderTargetBitmapや
System.Windows.Media.PixelFormatsを使えば
アプリケーション的には可能になりますでしょうか?、
XPだと表示的には8bitかもしれないですが。

以上です、よろしくお願いいたします。
seai
ベテラン
会議室デビュー日: 2007/04/10
投稿数: 60
投稿日時: 2008-03-28 14:27
どうでもいいことかも知れませんがちょっと気になったので

表示するには必ずモニターが必要だと思うんですが
16ビット諧調を表示できるモニターって無いんじゃ・・・
それにビデオチップが対応していなければ無理なんじゃ・・・

多分LCDですよね?自分が知る限りではRGBそれぞれ1024階調
(10ビット諧調)が最高だったような。
(専用のビデオカードを使用してです)
それにしたってガンマ補正や、色温度補正のために
用意されているようなもんだし。

昔のCRTならアナログなので人の目には限界がありますが
諧調は無限大ですのでビデオチップのDAコンバータが
対応していれば表示はできると思いますが。

アプリケーションでは16ビット諧調が扱えるとしても
表示に関しては8ビット諧調に丸めざるを得ないのでは
ないかと思うのですが。

おかしな突込みですみません。
CRTの初期から長年モニターの開発にかかわってきたもので
ちょっと気になりまして。
ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2008-03-28 15:40
seaiさん
レスありがとうございます。

seaiさんの言う通り必要だと思います
モニターなどハードウェア的な部分は、対応しているものが
必要かと思います。

アプリケーション部分で、16bitの物を8bitに丸めてしまいますと
モニターなど対応していましても、256階調以上のものが出ないのではと思いました。

ですので、WPFでしたら16bit対応しているとうことなので、丸めることなくアプリ部分は、表示可能なのかとお聞きしました。

以上です。
よろしくお願いいたします。
TAD
ベテラン
会議室デビュー日: 2007/03/20
投稿数: 52
お住まい・勤務地: 海のそば
投稿日時: 2008-03-28 16:55
対応しているハードウェアが"あるかも知れない"ので出来るだけ対応しておきたい...という
気持ちはわかりますが、じゃあ本当に対応しているハードウェアが存在するの? というと
どうでしょう。実は無いんじゃないでしょうか。

なんでそういう製品が(多分)ないのでしょうか。各色8bitと各色10bit、敏感な人なら
違いが判りますが、それ以上の分解能は人間が検知できないのでは、とか、下位ビットの
信号って電気的/光学的ノイズに埋もれてしまって無意味なのではないか、なんていう
あたりが理由でしょうね。

"16bit分解能"の意味をきちんと理解したら、その(不)必要性も自ずと見えてきたりしませんか。
16bit信号の"発生源"がそれを理解してくれないとしょうがないのかも知れませんが。

余談。
>CRTの初期から長年モニターの開発にかかわってきたもので
ブラウン管の発明が1897年、日本のテレビ放送開始が1953年。一体seaiさんのお歳は...(^^;
#ちなみに私も20年弱CRTの機器開発(ソフト/ハードとも)に関わっていました。FBTから
#火花飛ばしたりとか高圧掛けすぎてネックが折れたりとかまぁいろいろ...
ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2008-03-28 17:28
TADさん
レスありがとうございます。

すみません、詳しくないので表現が悪かったかもしれないです。
詳しく書いてみます。

あるカメラ(モノクロ画像)なのですが1画素あたりのデータ
2byteで構成されます。(データとしてはMAX4096かもです)
階調4096を表示できるカメラなのです。

もし、1byteでしたら256階調ですので、
今のままでアプリを作れば表現できると思います。
もし、方法がないのでしたら、データ値を丸める
ことで対応すればよいと思っています。

ただ、方法としてWPFを使うことによって
データを丸めることなく16bitに対応できるのでしたら
(Azuleanさんレスによる)
そちらでアプリを作成したいと考えています。

以上です。
よろしくお願いいたします。


スキルアップ/キャリアアップ(JOB@IT)