- ベストアンサー
画像データ変換とサーモグラフィ表示について
- 100*100の3次元データを画像データに変換する方法を教えてください。
- サーモグラフィのような形で色の分布を表示するためのソフトウェアの使い方を教えてください。
- 画像データの変換とサーモグラフィ表示について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは. ご質問のような機能を持つソフトで思いつくのは ・データ可視化ソフト(http://rd.vector.co.jp/soft/win95/edu/se177498.html , マニュアルは http://hp.vector.co.jp/authors/VA019223/Contour/Contour.html) ・Excelの等高線グラフ ・matlab(有料),Octave(フリーソフト)等の数値計算ソフト(要プログラミング知識) ぐらいですか・・・. あと,メモ帳だけでもやろうと思えば出来ます.(ちょっと手間ですが) ppm画像を作成するのです. とりあえず,下のP3から最後の10までをメモ帳にコピー&ペーストし, test.ppm として保存した後,ppm画像を開けるビューワーで開いてみてください. (IrfanView http://www.forest.impress.co.jp/lib/pic/piccam/picviewer/irfanviewjp.html でも Susie http://www.forest.impress.co.jp/lib/pic/piccam/picviewer/susie.html でもOK) P3 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 左から右へ明るくなるモノクログラデーションの10x10 pixelの画像が出ましたね. 4行目までのヘッダ部分,及びデータ部分に書いてあることの意味は以下の通りです. 1行目のP3:ファイルの形式.P3はASCII形式(メモ帳で操作できる形式)でフルカラー. 2行目の10:画像の幅. 3行目の10:画像の高さ. 4行目の10:明るさの値の最大値(この場合,0から10ということ.普通は255指定) 5行目以降:(x=1,y=1のRedの値) (x=1,y=1のGreenの値) (x=1,y=1のBlueの値) (x=2,y=1のRedの値)..... ...................................................................(x=10,y=10のBlueの値) となります. (※かならず全て半角で.一つ一つのヘッダや値の間は空白か改行を入れる. つまり,改行なしで書いても大丈夫です.今回は分かり易いように改行を入れました) ですから,ご呈示のようなxyzの値を書くのではなく,zの値だけを3つ並べてしかるべき位置に 書いていけば画像になります.Excelのマクロ(並べ替えた後「テキスト(スペース区切り)」で保存), または適当な検索置換機能を持つテキストエディタでやるのが早いと思います. また,何らかの自作プログラムからそのデータ出力を得ているのなら,ヘッダを追加し,zの値を 並べるよう,そのプログラム自体の出力形式を変えればOKです. サーモグラフィと仰っているのは, 低→中→高 青→緑→赤 と表示したいということでしょうか. それならば,3つ同じ値を入れるのではなく, z=1のとき:0 0 10 z=3のとき:0 5 5 z=5のとき:0 10 0 z=10のとき:10 0 0 などと変換するように(Excelマクロ等で)やるのがいいと思います.
その他の回答 (1)
- kirinoma
- ベストアンサー率53% (288/542)
>データとして、zの種類がかなりあり、それをひとつひとつ設定していく、ということでいいんでしょうか? 式を作ってしまえば良いと思います. とりあえずエクセル風(IF(判断,真,偽))に書くと Red=IF(z<(最大値/2),0,(z-(最大値/2))*2) Green=IF(z<(最大値/2),z*2,最大値-((z-(最大値/2))*2)) Blue=IF(z<(最大値/2),最大値-(z*2),0) という感じですか・・・・. 低→中と中→高の場合に分けて,後はスケーリングを行っています. (境界条件が変かもしれません.ご確認を.) >あと一つ、数値の最大値は255までなのでしょうか? ppmの数値の最大値はいくつでもOKです.
補足
返信ありがとうございます。 ちなみに、参考にあげてもらったソフトですが、contourというソフトで、plot3D形式のデータでないと読み込めないということでした。 plot3D形式というのはどういう形式かご存知でしょうか? もし知っていたら教えてもらいたいのですが・・・。 また、それは今回のようなデータで適用できるのでしょうか?
補足
返信ありがとうございます。 まさしくやりたいのは、 「低→中→高 青→緑→赤 と表示したいということ」 です。 後半の、 z=1のとき:0 0 10 z=3のとき:0 5 5 z=5のとき:0 10 0 z=10のとき:10 0 0 などと変換するように というところがよくわかりません。 データとして、zの種類がかなりあり、それをひとつひとつ設定していく、ということでいいんでしょうか? もしそうなると、かなりの種類を設定しないといけなくなるのですが・・・・。 また、zの値も規則的ではなく、ばらばらなので、設定が難しい気がします。 あと一つ、数値の最大値は255までなのでしょうか? それ以上の値は設定できないのでしょうか? 初心者の質問ばかりで申し訳ないですが、よろしくお願いします。