- 締切済み
画像化のプログラム
今画像化のプログラムを組んでいます。 画像にするのは時系列データ(波形データ)の配列です。 つまり、画像の縦軸が波形の横軸(時間orデータ数)、画像の横軸が波形データの個数になります。 この画像化のプログラムがあまり分かりません。 考えてるのは、すべてのデータから最大値を求め,それで256(色)に正規化します。 その後,TColor等を用いて画像化すると思うのですがそこからがよく分かりません。 CやC++に詳しい方、どうか宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- cherry_moon
- ベストアンサー率36% (37/102)
>考えてるのは、すべてのデータから最大値を求め,それで256(色)に正規化します。 ちょっとここが気になったので。 平面のグラフにするなら最大値で正規化するのでいいとは思いますが、 画像にするなら最大値よりも小さい値で正規化するべきだと思います。 一番大きい値に割り当てた色は最悪1つしか現れないかもしれません。 音声のスペクトログラムでは対数を取りますよね。 そうしないと、250以上の値がちょっとあるだけで、 あとはほとんど0になってしまいます。 すでに考慮されているところならば、流してください。
>像の縦軸が波形の横軸(時間orデータ数)、画像の横軸が波形データの個数になります。 これは結局画面の縦軸も横軸も波形データの横軸、つまり時間軸となり画面の四隅の一つを起点とした長方形がたくさん描かれることになりますがそれが目的ですか? (長方形の色は波形の強度を表すとして) まずお使いになるOSとコンパイラがわからないと誰もアドバイスできませんよ。 というのも、TColor というお話からすると Microsoft Visuall C++ ではないからです。 (VC++ にはそのようなものはありません。MFC を使う場合は CPen, CBlush などで色を決めます。)
お礼
お礼が遅くなりました。情報が少なくて申し訳なかったです。これからは気をつけます。
お礼
いろいろ試してみてだいたい分かりました。 また何かありましたらよろしくお願いします。