C言語で画像を出力したい

このQ&Aのポイント
  • C言語を使用してフーリエ変換を行いたい場合、PGPLOTというツールが便利です。しかし、PGPLOTの設定方法について困惑している場合があります。青枠で囲まれた部分はどこに記入するのか、コマンドプロンプトに入力するのかなどが分かりません。説明が分かりやすく提示されている書籍や学習資料についてご教示いただければ幸いです。
  • C言語を使用してフーリエ変換を行いたい場合、PGPLOTというツールが便利です。しかし、PGPLOTの設定方法について困惑している場合があります。どの箇所の設定に対して説明が必要なのか、具体的に教えていただきたいです。また、学習するための参考書や勉強方法についてもアドバイスがあれば嬉しいです。
  • C言語を使用してフーリエ変換を行いたい場合、PGPLOTというツールをインストールする必要があります。しかし、PGPLOTの設定方法についてよくわからないことがあります。具体的には、青枠で囲まれた部分にどのような情報を記入するのかが分からず、コマンドプロンプトでの入力もうまくいきません。理解が深まるための参考書や勉強方法について教えてください。
回答を見る
  • ベストアンサー

C言語で画像を出力したい

C言語で画像を出力したい C言語で画像を出力したい ホントに初歩的な質問になるのですが、申し訳ありません。 私はC言語を使ってフーリエ変換(つまりsin波形とかスペクトルの出力)をしてみたいと思っています。 調べてみると「PGPLOT」というものが使いやすいと知ったので、インストールしたのですが、そこから先の設定の説明をみてもよくわかりません http://hooktail.org/computer/index.php?PGPLOT%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A4%C8%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB%CA%FD%CB%A1 このサイトに載っている青枠で囲まれた部分(#とかから始まる文章)は一体どこに記入してるのですか? コマンドプロンプトに入力するのかなと思って実行したら 「'$' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 とか、出てきます。どこの箇所の設定の説明なんですか?もしよろしければ可能な範囲でいいので教えてください。 自分は数値計算でしかC言語を使用してないので全然わかりません。でもこの説明も分かる人にはわかるんですよね?どういった参考書や勉強をしたらわかるようになるんですか? それだけでもいいので教えてください。

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

  • ベストアンサー
  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.5

#3です >windowsはunix系じゃないから、「PGPLOT」をそのままインストールしても作動しない。 いや前記事に書きましたがVC用のものもあるようですよ (Windows PGPLOT とか検索した中にありましたから) 但しLIBファイルが無造作に置かれているような感じでしたが >windowsでも「PGPLOT」を作動させるためにはunix系に環境を整えなければいけない。 >そのためにはCygwinをインストールする。 今回参考にされてる開発環境(プラットフォーム)は Windows+Cygwin+PGPLOT の環境なのでそういうことになります (Cygwin読まずに一足飛びにPGPLOTに飛んでしまったので???ということになっているのです) 開発環境やコンパイラなどが変われば其の組み合わせが変わってきます MACは持ってないので知りませんが多分UNIX系だからといって 説明どうりには進まないのではないかと思います (コンパイラなどが無いのではないかと思います) 完全なUNIX環境(開発環境付)なら話が変わってきますが

thjki6624
質問者

お礼

おっしゃる通りいきなり、PGPLOTに飛んだんでよくわかりませんでした。 それ以前にパソコンの環境によってそこまで影響があるとは思っていませんでした。 自分はC言語だけしかわからず、その先のC#やC++、他の言語も全く知らないので、この作業をこなすのは結構大変かもしれないです。

その他の回答 (4)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

>パソコンの環境って、windowsかmacかという違いだと思っていたのですが。 それは、OSの名称ですね。 それ以外にLinuxやUnixなど(他にも沢山あります)のOSがあります。 ちなみにMAC OSXはUnix系です。 で、例に上げられたPGPLOTに関する説明はLinux/Unix向けに書かれていますので、#3さんの挙げたWindows上で擬似的なUnix環境を実現するcygwin(Unix系の学習が必要です)を導入するか、下記サイトを参考にしてみてください。 http://spdg1.sci.shizuoka.ac.jp/grwinlib/ これが全ての答えではありませんが、参考になれば幸いです。

thjki6624
質問者

補足

なるほど、ご説明ありがとうございます。おかげさまでなんとなくわかってきました。 ということは、パソコンがmacの場合ならUnix系の環境にあるからサイトの説明通りにできる。 ただ、windowsの場合だとその環境を作らないと設定自体ができない。 こうゆうことですかね? となると、この「PGPLOT」をwindowsで動かすのは初心者には結構大変な作業を初めに要するんですね?

  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.3

閉じられちゃったんでこっちへ 以下の環境が必要です http://hooktail.sub.jp/cygwin/intro/index.html

thjki6624
質問者

お礼

なんとなくわかってきました。 確かにこのサイトにはwindowsとCygwinって項目があったのは知っていたのですが、結局なにが言いたいのかよくわからなかったんです。 windowsはunix系じゃないから、「PGPLOT」をそのままインストールしても作動しない。 windowsでも「PGPLOT」を作動させるためにはunix系に環境を整えなければいけない。 そのためにはCygwinをインストールする。 こんな感じでしょうか? いやー、難しいです。。。 皆さんなんでそんなに詳しいんですかね?ほんと尊敬します。自分も皆様のようになりたいです。

noname#111181
noname#111181
回答No.2

Linuxシェルです。 '$'は一般ユーザーモード、'#'はスーパーユーザーモードを表しているので、これらの文字を入力する必要はありません。

thjki6624
質問者

補足

i80286さんですね。先日は回答ありがとうございました。 助言にもとずいて、これからC言語の勉強を少しづつしていこうと思っています。 そのはじめの段階としてPGPLOTを導入しようと思っているのですが、すいません、入力するのはどこにするんでしょうか?コマンドプロンプトでいいんですか?

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  貴方のPC環境が分かりませんが、リンク先の説明はUNIXまたはLinux向けのものです。$や#はプロンプト(Windowsのコマンドプロンプトの>と同じ意味。) では。

thjki6624
質問者

補足

あの、自分のPC環境ってどうやったら分かるんでしょうか。 パソコンの環境って、windowsかmacかという違いだと思っていたのですが。

関連するQ&A

  • C言語で画像を出力したい

    C言語で画像を出力したい ホントに初歩的な質問になるのですが、申し訳ありません。 私はC言語を使ってフーリエ変換(つまりsin波形とかスペクトルの出力)をしてみたいと思っています。 調べてみると「PGPLOT」というものが使いやすいと知ったので、インストールしたのですが、そこから先の設定の説明をみてもよくわかりません このサイトに載っている青枠で囲まれた部分(#とかから始まる文章)は一体どこに記入してるのですか? コマンドプロンプトに入力するのかなと思って実行したら 「'$' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 とか、出てきます。どこの箇所の設定の説明なんですか?もしよろしければ可能な範囲でいいので教えてください。 自分は数値計算でしかC言語を使用してないので全然わかりません。でもこの説明も分かる人にはわかるんですよね?どういった参考書や勉強をしたらわかるようになるんですか? それだけでもいいので教えてください。 ちなみにパソコンはwindowsを使っています。

  • C言語で2次元画像

    C言語で2次元画像を書きたいです。 例えば、a.datと言うファイル 1   10 2   20 3   30 4   40 .   . .   . などなど このファイルを2次元の曲線として出力したいです。 できますでしょうか? 教えてください! お願いします。

  • 画像の2次元フーリエ変換の結果の表示の仕方について

    現在、C言語で画像に2次元離散フーリエ変換を施し、高速フーリエ変換と比較しろという課題に取り組んでいます。 以下の様なプロセスで2次元フーリエ離散変換を施し、結果を表示しようと思っています。 ・画像を読み込み、float型配列に入れる。 (画像は一番左上が原点とします。256×256のサイズです) ・上記のfloat型配列の、第1象限と第3象限、第2象限と第4象限を各々入れ替える。 ・各行ごと、つまり、f[0][0]~f[0][255]、f[1][0]~f[1][255]、と順々)に1次元離散フーリエ変換を施す。 ・上記のフーリエ変換の結果を各列ごと、つまり、f[0][0]~f[255][0],f[1][1]~f[255][1]という風に1次元離散フーリエ変換を施す。 ・フーリエ変換の結果の、第1象限と第3象限、第2象限と第4象限を各々入れ替える。 ・f[][]のパワースペクトル(実部の2乗+虚部の2乗の、自然対数をとったもの)を計算する。 ・そのパワースペクトルとをfloat型なので、char型に置き換えて画像として出力する。 正規化等の少し細かいところは省略しました。 結果として、参考書等で見かけるもの(真ん中が直流成分で、含まれる周波数を濃淡で表したもの)になればいいのですが、上記のプロセスで大丈夫ですか? パワースペクトルを計算した後に、何らかの移動の処理(つまり、画像の真ん中が直流成分となるような処理)を施す必要がなく、 フーリエ変換の計算の前と後に象限の入れ替えを施すだけで、直流成分が出力画像の真ん中に来るということですか? フーリエ変換の前と後で、象限を入れ替えるだけで周波数空間では原点が真ん中になることが納得できないです。 ややこしい質問ですが、「プロセスのここが間違ってるよ」等を教えていただけると助かります。特にパワースペクトルの部分等。 よろしくお願いします。

  • 離散フーリエ変換をC言語でどの様に書けばいいですか?

    C言語でDFT離散フーリエ変換を書くにはどの様に書けばよろしいですか? Googleで検索すれば書き方は出てくるのですが、使ってる関数がいまいちよく分かりません。 ・データの入力 ↓ ・フーリエ変換の計算 ↓ ・結果の出力というのをやればいいのは理解できるのですが、C言語でどの様に書けばいいか分からなくて…

  • C言語FFTからのパワースペクトル表示の質問

    手元にはC言語で作成したFFT/IFFTの処理を行うプログラムがあります。FFT,IFFTともに1次元です。 それを使って、図の信号をフーリエ変換し、パワースペクトルを図示できません。 どうすればいいでしょうか? できたら、結果も含めて教えてください。 詳細は画像を張ります。

  • 離散フーリエ変換をC言語で書く方法について

    C言語でDFT離散フーリエ変換を書くにはどの様に書けばよろしいですか? Googleで検索すれば書き方は出てくるのですが、使ってる関数がいまいちよく分かりません。 ・データの入力 ↓ ・フーリエ変換の計算 ↓ ・結果の出力というのをやればいいのは理解できるのですが、C言語でどの様に書けばいいか分からなくて…

  • 方形波をフーリエ変換した理由と分かる事

    A―――――――― |       |  =       |    |B       発振器 >       |    <       |  ―――――――― C AC間とコンデンサーの両端の電圧波形とスペクトル波形があります。(400Hzと4kHzの方形波を流しました。)何が何故最初のピークの奇数倍となってるのでしょうか?またフーリエ変換した理由が分かりません。教えてください。

  • C言語について

    C言語でif文の条件指定の際、a > b && c > dとe > f && g > hのどちらかが成立すれば真という条件を書きたい場合、a > b && c > d || e > f && g > hという文では間違いですよね? どのように表記すればいいでしょうか? 解答よろしくお願いします。

  • C言語での画像の表示の仕方について

    C言語で画像を表示させたいです。外部出力として画像を表示させてもかまいません。やり方を教えてください。

  • linuxコマンド・C言語での行抜き出し

    2つのファイルを比較して一致しない行だけを 抜き出すという処理について教えてもらえますでしょうか? 例) 比較するファイルは以下のようなファイルとする。 ファイル1    ファイル2 A         A B         C C D 出力ファイル B D このような処理を行いたいのです。 方法としてはC言語かlinuxコマンドを用いたいのですが、 教えてもらえますでしょうか? よろしくお願いします。