3×3のコンボリューションカーネルを周波数空間で乗算の計算にしたいです.
実空間ではコンボリューションカーネルと画像は畳み込み積分を行うのに対し,それらは,周波数空間では乗算になることがよく知られています.
以下のコードと画像は,実空間の畳み込み積分のコードですが,周波数空間で同じような結果を出すにはどうすればよいでしょうか?
コンボリューションカーネルをただ単にzeroパディングして,画像と同じサイズにするのでしょうか?
よろしくお願いいたします.
python
1import numpy as np 2from matplotlib import pyplot as plt 3import cv2 4 5filename="C:/Users/Desktop/lena.png" 6image = cv2.imread(filename,0) 7 8kernel = np.array([[-1, -1, -1], 9 [-1, 8, -1], 10 [-1, -1, -1]], dtype=np.float32) 11 12processed_image=cv2.filter2D(image, cv2.CV_32F, kernel) 13plt.imshow(processed_image,cmap = "gray") 14
あなたの回答
tips
プレビュー