Python 碳纤维图像的频域滤波器
我目前正在尝试为碳纤维图像编写一个特定于域的频率滤波器 我已经加载了图像,执行了2D FFT,并将0频率移到了中心 现在我正试图找到白线的方向。我知道我应该在0°到180°的角度上循环。在每个角度增量处,图4所示内切圆的半径向量应以指定角度绘制,强度沿其插值并汇总 之后,我想用巴特沃斯方程来平滑滤镜中从白色到黑色的过渡 到目前为止,我的代码如下所示:Python 碳纤维图像的频域滤波器,python,opencv,matplotlib,Python,Opencv,Matplotlib,我目前正在尝试为碳纤维图像编写一个特定于域的频率滤波器 我已经加载了图像,执行了2D FFT,并将0频率移到了中心 现在我正试图找到白线的方向。我知道我应该在0°到180°的角度上循环。在每个角度增量处,图4所示内切圆的半径向量应以指定角度绘制,强度沿其插值并汇总 之后,我想用巴特沃斯方程来平滑滤镜中从白色到黑色的过渡 到目前为止,我的代码如下所示: import cv2 import numpy as np from matplotlib import pyplot as plt i
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread(r'C:\...')
grayimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
f = np.fft.fft2(grayimg)
magnitude_spectrum = 20*np.log(1+np.abs(f))
fshift = np.fft.fftshift(magnitude_spectrum)
plt.figure(1)
plt.imshow(grayimg,cmap = "gray")
plt.title("Input Image"), plt.xticks([]), plt.yticks([])
plt.figure(2)
plt.imshow(magnitude_spectrum, cmap="gray")
plt.title("Magnitude Spectrum"), plt.xticks([]), plt.yticks([])
plt.figure(3)
plt.imshow(fshift, cmap="gray")
plt.title("fshift"), plt.xticks([]), plt.yticks([])
rows, cols = grayimg.shape
crow, ccol = int(rows/2), int(cols/2)
eps = np.arange(0,180,0.1)
plt.show()
如果有人能告诉我如何实现我的目标,我将不胜感激
谢谢你抽出时间
编辑:我认为解决方案是从skimage.draw导入“line()”命令。但是如果我想损坏角度,我就必须插值像素,对吗?/P>选择阈值以上的像素,拟合一个穿过原点的线,y=a·席想在每一个角度内插和总结功率谱,找到具有最高强度的线,这样我就知道了我的纤维有什么方向。