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

画像データ変換とサーモグラフィ表示について

このQ&Aのポイント
  • 100*100の3次元データを画像データに変換する方法を教えてください。
  • サーモグラフィのような形で色の分布を表示するためのソフトウェアの使い方を教えてください。
  • 画像データの変換とサーモグラフィ表示について教えてください。

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

  • ベストアンサー
  • kirinoma
  • ベストアンサー率53% (288/542)
回答No.1

こんにちは. ご質問のような機能を持つソフトで思いつくのは ・データ可視化ソフト(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マクロ等で)やるのがいいと思います.

takeda111
質問者

補足

返信ありがとうございます。 まさしくやりたいのは、 「低→中→高 青→緑→赤 と表示したいということ」 です。 後半の、 z=1のとき:0 0 10 z=3のとき:0 5 5 z=5のとき:0 10 0 z=10のとき:10 0 0 などと変換するように というところがよくわかりません。 データとして、zの種類がかなりあり、それをひとつひとつ設定していく、ということでいいんでしょうか? もしそうなると、かなりの種類を設定しないといけなくなるのですが・・・・。 また、zの値も規則的ではなく、ばらばらなので、設定が難しい気がします。 あと一つ、数値の最大値は255までなのでしょうか? それ以上の値は設定できないのでしょうか? 初心者の質問ばかりで申し訳ないですが、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • kirinoma
  • ベストアンサー率53% (288/542)
回答No.2

>データとして、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です.

takeda111
質問者

補足

返信ありがとうございます。 ちなみに、参考にあげてもらったソフトですが、contourというソフトで、plot3D形式のデータでないと読み込めないということでした。 plot3D形式というのはどういう形式かご存知でしょうか? もし知っていたら教えてもらいたいのですが・・・。 また、それは今回のようなデータで適用できるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 3次元データの表示

    X、Y、Zの3次元データを空間上にプロットし、それらのデータを結ぶ仮想面を表示し、いろいろな方向から見る事の出来るようなソフトをご存知ないですか? XとYを変えた場合の結果がZであるような場合に、XとYの影響をビジュアルにして見たいのです。お願いいたします。 尚、OSはWin2000です。

  • こんな機能ありませんか?(3次元のグラフ描画ソフトについて)

    3次元空間で、座標に依存する変数 p = f(x,y,z) を x,y,z に対してプロットし、pの値の大小を点の色で表現するソフトが欲しいと思っています。 具体的には、例えば「点電荷の周りの静電ポテンシャルを3次元空間に、ポテンシャルの高さを色で表して表示したい」とか、「炎の周りの温度分布を3次元空間に表示したい」、とかいうことです。 3Dで等高線を描くソフトはフリーウェアでもたくさん見つけたのですが、なぜか上の機能のあるものが見つかりません。 シェアウェアや市販品でもよいので、ご存知の方がいらっしゃいましたらぜひ教えて下さい。プロットすべき数値データは用意できますので、計算機能は不要です。グラフが回転できるとうれしいです。

  • Excelで3次元分布図を表示したい

    エクセルにて、3次元の分布図(散布図?)を示したいのですが、過去の質問等を見ても難しそうですね。 エクセル以外のフリーソフト等でも良いのですが、以下のような3次元のデータをもったものを立体的なグラフで表示する方法はないでしょうか? もちろん、エクセルで作図できればそれに越したことはありません。     X     Y     Z A  0.5   1.5   2.3 B  2.0  -0.7   1.0 C -2.5   1.3  -0.5  D  1.0   3.0  -2.5 ・   ・・    ・・   ・・ ・   ・・    ・・   ・・ 各要素は単独で点として表示したく、それぞれを線で結ぶ必要はありません。 ただし、3次元で表現するために、Z方向の値の表現については、XY平面上からまち針のような形で立ち上がるような表現が理想です。 理屈は極めて簡単だと思うのですが、うまく表現するエクセルの機能やソフトが見つかりません。 どなたか、よい情報をお持ちでしたらお教え下さい。 よろしくお願いいたします。

  • 3次元配列から2次元配列に

    3次元配列のデータを2次元配列に移すにはどのように したらよいのでしょうか.とりあえず下記のように考えてみましたが. data3[500][500][4000]; //3次元配列 data2[500][500]; //2次元配列 for(y=0; y<500; y++) for(x=0; x<500; x++){ for(z=0; z<4000; z++){ data2[y][x] = data3[y][x][z]; } } } これでいいのでしょうか?

  • 統計学

    2個のサイコロを同時に投げる時、それぞれの出る目の数をX,Yとする。XとYは独立か。 さらに、Z=X+Yの従う確率分布及びその分布の平均値と分散を求め、μ(z)=μ(x)+μ(y) 、 σ^2(z)=σ^2(x)+σ^2(y)がそれぞれ成り立つことを確認せよ。 という問題なのですが、2次元確率分布表とXの周辺分布、Yの周辺分布はわかったのですが、周辺分布を使って、平均値と分散が出せたと思うのですが、ご教示願えませんでしょうか。 また問題にはσ^2(z)=σ^2(x)+σ^2(y)が成り立つ時、σ^2(z)=σ^2(x)+σ^2(y)+2σ(xy)が成り立つ時がありますが、どのような場合に変わるのでしょうか。 独立のときが後者で、独立ではない時は前者なのでしょうか。

  • 二次元正規分布に関連する問題に困っています.

    二次元正規分布に関連する問題に困っています. xy平面上に10×10の100個の格子があり, そのそれぞれの格子がzの値として, 1から100のいずれかの値を持っています. 与えられる点のイメージは以下のようになります. (x,y,z)=(1,1,56) (x,y,z)=(1,2,57) (x,y,z)=(1,3,59) … (x,y,z)=(100,100,98) zの値はxy平面上にランダムに散らばっているのではなく, 波の様なある曲面に沿って散らばっています. 今この局面上に散らばった値をもとに, z=55.55 という値が最も存在し得る位置を求めます. 現在のところ自分の考えではz=55.55という値と, 散らばった100個のzの値との偏差を計算し, この100個の偏差が最小となる点が, 最もz=55.55の点が存在し得るということを考えました. ここで,相関係数ρ=0とした二次元正規分布, f(x,y)=1/(2pi*σx*σy) *exp( -1/2 * ( (x-μx)^2/σx^2 + (y-μy)^2/σy^2 ) ) というf(x,y)を導入して, 上で考えたz=55.55という値が最も存在し得る位置を求めたいです. どなたか確率分布に詳しい方がいらっしゃいましたら, アドバイスをよろしくお願いいたします.

  • 3次元データを3D表示

    3Dプログラミング初心者です。 3次元データ(X,Y,Z)が多数あり、これらの点を3次元散布図のように表示させたいと考えてます。 3次元のデータは不規則ではなく、実物から3次元計測をして取得したデータです。 また、3次元の画像はマウスで回転させて見る方向を変えれるようにしたいです。 画像表示プログラムを、VC++もしくはVB.NETで作成したいのですが、 作成するにあたり、どのように作っていけばいいのかわかりません。 大まかな作成の流れ、もしくは参考になるサイトなどありましたら、 教えてください。 尚、プログラミングに必要な数学の知識は勉強しました。

  • 正規分布に従う確率変数同士の積の分布について

    確率変数X,Yがそれぞれ正規分布N(X|μx, σx^2),N(Y|μy, σy^2)に従っているとき,Z=X*YとおくとZの分布はどのような分布になるのでしょうか,またどのように導出すればよろしいでしょうか.参考になるHP等あればお教えください. 調べたところ,確率変数同士の和の分布について(Z=X+YのときのZの分布)は,畳み込みで求めるられ,また,正規分布に従う確率変数の自乗の分布はカイ2乗分布であることも分かりました. これらを参考にZ=X*YのときのZの分布を求めようと,畳み込み同様に変数変換を行い積分をしようとしたのですが指数部の中が複雑になり積分が手に負えなくなってしまいます...

  • 空間上に分布するデータの補間について

    こんにちは。 空間上に分布するデータを関数近似したいと思っています。(x,y,z)のデータ列は数点に分布しており,それらの点列すべてを通過できるようなひとつの曲面関数表現はできるのでしょうか?もしくはパッチなどを組んで各々に関数表現するような方法が良いのでしょうか? このような問題に対して,どのようにアプローチしたらよいのかアドバイスお願いします。

  • ■緊急■任意の数値データの波波形と微分波形■

    ■緊急■でお願い致します(期限は原則、後4日間しか有りません)。 はじめまして宜しくお願い致します。 探しているのは■任意の数値データの波波形と微分波形■を表示できるシフトです。 具体例で説明させて頂きます。 ・x軸データ:1、2、3、4、5、6、7、8、9、10 ・y軸元データ:38、25、30、17、26、29、6、22、8、17 だとします。 ・x軸データは予め規定された数値 ・y軸元データはx軸データ毎に観測された数値  です。 表示(2次元グラフ化)したいのは ・x軸データを横軸 として ・y軸元データを縦軸に波状波形として表示し、かつ、 縦軸にy軸元データ波状波形の微分波形を表示させたいです。 EXCELでできると思っていましたがどうしても私にはできませんでした。 そこで、できれば、フリーソフトでできるものを探しています。 (グーグルなどの検索で2日間探しましたが見つかりませんでした) フリーソフトで存在しないのであれば有料ソフトでも案内お願い致します。 ★深刻度★このソフトが見つからないと失業しそうです。