情報詳細Q:FFT変換した画像に対してラインプロファイルの輝度値変化を配列で取得し、gen_lowpass関数のFrequencyにおける周波数を指定したいがどのようにした方がよいでしょうか?① 画像中の1行を取り出した時のラインプロファイルを フーリエ変換して周波数スペクトルを算出したい(配列) 例)横軸:周波数、 縦軸:スペクトル② ①で得た周波数スペクトルから、カットオフ周波数を決めて 例えばLPFなどのフィルタを適用した後の波形を抽出したい(配列) この場合に、Halcon関数である「fft_image→gen_lowpass→fft_image_inv」を 使用する方法がありますが、gen_lowpass関数のFrequencyは周波数で指定することは可能でしょうか。■A:>① 画像中の1行を取り出した時のラインプロファイルを> フーリエ変換して周波数スペクトルを算出したい(配列)フーリエ変換したFFT画像に対して、power_realのオペレータを使用致しまして、複素画像のパワースペクトラムを返すことが可能です。この情報を用いて、スペクトル情報をtuple(配列)で取得することができます。(使用オペレータ:gen_region_line→get_region_points→get_grayval)>② ①で得た周波数スペクトルから、カットオフ周波数を決めて> 例えばLPFなどのフィルタを適用した後の波形を抽出したい(配列)> この場合に、Halcon関数である「fft_image→gen_lowpass→fft_image_inv」を> 使用する方法がありますが、gen_lowpass関数のFrequencyは周波数で指定することは可能でしょうか。> 例えば、50Hzのローパスを適用したいとすると、 Frequencyの数値はいくつにすれば良いでしょうか。空間周波数は画像の(今回の場合、水平方向のwidth)最大波長[pix]を1周期と考えるため、単位は[pix^(-1)]になります。そのため50Hzという考え方はおそらくできません。以下の工程によりFrequencyの指定とLPFの波形を表示することが可能になるかと思われます。①の配列をもとに別ウィンドウにグラフ生成②グラフの周波数分布からカットオフ領域を指定③指定したColumn情報と画像水平方向の中央との差から絶対値を取得し、水平方向の画像最大幅により正規化(計算式:Frequency:=sqrt(pow((Column-((Width-1)/2)),2))/((Width-1)/2))④計算されたFrequencyをLPFのパラメータに代入⑤①と同様にグラフ生成参考までにサンプルプログラム(sample_Frequency.hdev)を作成いたしましたので、ご確認いただければと思います。*GrayvalFFTとGrayvalConvolがそれぞれの周波数スペクトル情報のtuple(配列)になります。添付ファイルsample_Frequency.zipタイトルFFT変換した画像に対してラインプロファイルの輝度値変化を配列で取得し、gen_lowpass関数のFrequencyにおける周波数を指定URL 名000004750公開状況公開済み検証状況公開済み