2次元FFT図を逆FFTし元の画像を得るプログラムを作ったのですが、得られた画像は、右斜上方向に数本の線やら何か入っててその線によって画像の濃度を逆転したりしています(説明が悪くてすいません)。その障害はありますが、少し画像は得られてます。
2次元FFT図は、自分で作ったものです。picture.backcolor=RGB(0,0,0)でスペクトルの点は、半径1、RGB(255,255,255)です。サイズは256*256です。一点かき、逆FFTで水平方向に白、黒、白・・・・(画像)を得ることを目的としております。
画像を読み込みの時、
For j = 1 To Size
For i = 1 To Size
rTemp(i) = Picture.Point(i, j) And &HFFFFFF
iTemp(i) = 0#
Next i
For i = 1 To Size
rData(i, j) = rTemp(i)
iData(i, j) = iTemp(i)
Next i
Next j
(r-実部、i-虚部)
このように白い点だけ実数部に読み込ませて、逆FFTをしています。
虚部もよみ込ませる必要あるのですか?
読み込ませるとしたら、値をどのように与えてやればいいのですか?
それか結果(得られる画像にいろんな障害がある)の原因は別のところにあるのですか?
説明が不十分や悪いとは思いますが、宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
実例となると自分で作ってみるしかないのですが、フーリエ変換式というのはこういうものでしょうか。
DFTの具体的なアルゴリズムをご提示ください。http://www.geocities.jp/shotajp/fourier.htm
計算結果が複素数で出力されますが、この結果はノルムだけをとっても0から255の間の整数に収まらないので最大値を255として比例配分することになります。ただ、この操作では全体的に数値の小さいところがほとんどになり、画面上は真っ黒になってしまいます。人間の視覚で判断するには対数スケールで配分した方がわかりやすくなります。もちろん次の計算には使うことができないので見るだけですが。
ありがとうございました。
0から255の間の整数に収まらないので最大値を255として比例配分することになります。がポイントですね。
がんばってみます。
No.2
- 回答日時:
グレースケール上ではRGBのそれぞれの8ビット値が一致すればよいので、演算はどれか8ビット値だけを取り出してフーリエ変換すればいいと思います。
もちろんフーリエ変換の前は実数変換を行い、フーリエ変換後もスケーリングをして0~255の整数値に規格化する必要があります。これをRGB値のそれぞれに代入することになるでしょう。フーリエ変換後の複素数の取り扱いはいろいろな課題があります。ノルムだけを使用するのか、実数部をとるのかこのあたりは求める内容やそれ以降の処理の進め方によります。この回答への補足
ありがとうございます。
>演算はどれか8ビット値だけを取り出して
すいません。よろしければ、具体例を教えていただけませんでしょうか?
規格化っていうのは、どういうことなのでしょうか?
ご指導の程よろしくおねがいします。
No.1
- 回答日時:
どうしても説明が読みとれません。
使用する逆FFT図はRGB値各8ビット×4の組み合わせでモノクロかもしれませんが、その32ビット値をフーリエ変換してしまうと別の色を表現することになってしまいます。常にグレースケール上に配分できるように変換する作業はできているのでしょうか。
この回答への補足
遅くなって申し訳ございません。
>どうしても説明が読みとれません。
すいません。日本語の表現が苦手です。
>使用する逆FFT図はRGB値各8ビット×4の組み合わせでモノクロかもしれませんが、その32ビット値をフーリエ変換してしまうと別の色を表現することになってしまいます。常にグレースケール上に配分できるように変換する作業はできているのでしょうか。
すいません。勉強不足です。
グレースケール上に配分という処理はどのような処理ですか?
詳しく教えてください。お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- 物理学 フーリエ級数展開をExcelのFFTでシミュレートする 5 2023/07/03 22:02
- Visual Basic(VBA) 1つの入力フォルダの値を読み込み、3分割をして新しい変数に代入する方法を教えていただきたいです。 読 4 2022/10/17 20:52
- Illustrator(イラストレーター) ワードに貼った画像のキャンバスと画像本体のサイズの調整 2 2022/05/19 18:31
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
姿勢センサでプロジェクタの台...
-
リアルタイムで多数の3角形ポリ...
-
線幅の測定
-
Windows Media Playerを開くと...
-
Google ColaboでGUI作成
-
Ps+のフリープレイでDestiny2の...
-
本格的なGUIを作るのにおすすめ...
-
scipy っていうのをいれようと...
-
iCloudフォトライブラリ内の画...
-
Windows上でJavaかc言語を使い...
-
Qtを勉強するのに何か良い書籍...
-
動画像をキャプチャするプログラム
-
プログラミングの次に何を勉強...
-
ど素人が勉強していくプログラ...
-
なぜHTMLのソースコードが無料...
-
iPhoneのカメラロールへ画像を...
-
お勧めのC言語勉強用フリーソ...
-
WEBサーバソフトの作成
-
C言語を勉強するサイトを教えて...
-
プログラマーで「使えない人」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
生年月日(yyyy/MM/dd) → 年齢...
-
OpenCVで寸法測定
-
色混ぜのアルゴリズム
-
直線と線分の交差判定について...
-
解像度と誤差について
-
行列の積の処理を高速化したい
-
魚眼画像について
-
姿勢センサでプロジェクタの台...
-
HBITMAPを初期化するとは?
-
VB BitmapをExcelに貼り付け 大...
-
リアルタイムで多数の3角形ポリ...
-
VBを使った自作の逆FFT
-
C言語での簡単な画像処理みた...
-
Canny法に用いる閾値の決定法に...
-
画像をFFTした際のスペクトル分...
-
点字認識システムを作成したい...
-
Ps+のフリープレイでDestiny2の...
-
Windows Media Playerを開くと...
-
本格的なGUIを作るのにおすすめ...
-
python urlopen error について...
おすすめ情報