Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 使用Python绘制FFT移位图像后,查找高频中心的坐标_Image Processing_Scipy_Fft_Python 3.7 - Fatal编程技术网

Image processing 使用Python绘制FFT移位图像后,查找高频中心的坐标

Image processing 使用Python绘制FFT移位图像后,查找高频中心的坐标,image-processing,scipy,fft,python-3.7,Image Processing,Scipy,Fft,Python 3.7,我试图写一个代码来检测图像中的莫尔图案。我对Python中的图像处理非常陌生,因此如果解决方案很简单,请原谅 我的方法是,使用scipy fftshift函数来区分莫尔图像和非莫尔图像(见下文)。莫尔图像有几个高频中心,而普通图像只有一个中心 我想得到这些“中心”的坐标,但我不知道如何精确地计算。 我对每一个建议都很满意 代码: 非云纹原稿: 云纹原稿: FFT后: 您可以尝试使用scipy.signal.find_peaks()函数。@请将用作莫尔、非莫尔示例照片的照片发布,以便我们可以直

我试图写一个代码来检测图像中的莫尔图案。我对Python中的图像处理非常陌生,因此如果解决方案很简单,请原谅

我的方法是,使用scipy fftshift函数来区分莫尔图像和非莫尔图像(见下文)。莫尔图像有几个高频中心,而普通图像只有一个中心

我想得到这些“中心”的坐标,但我不知道如何精确地计算。 我对每一个建议都很满意

代码:

非云纹原稿:

云纹原稿:

FFT后:

您可以尝试使用scipy.signal.find_peaks()函数。@请将用作莫尔、非莫尔示例照片的照片发布,以便我们可以直接运行代码。@BelalHomaidan我编辑了我的帖子accordingly@Riprip感谢您的快速回复,但我指的是原始格式的输入照片“.png或.jpg等…”,不是python代码或Matplotlib图的输出。@BelalHomaidan这很奇怪。我编辑了我的帖子,重新上传了这些图片,对我来说,它们正在发挥作用。您可以再试一次吗?您可以尝试使用scipy.signal.find_peaks()函数。@rip请您发布用作莫尔、非莫尔示例照片的照片,以便我们可以直接运行代码。@BelalHomaidan我编辑了我的帖子accordingly@Riprip感谢您的快速回复,但我指的是原始格式的输入照片“.png或.jpg等…”,不是python代码或Matplotlib图的输出。@BelalHomaidan这很奇怪。我编辑了我的帖子,重新上传了这些图片,对我来说,它们正在发挥作用。你能再试一次吗?
import numpy as np
from scipy.fftpack import *
import imageio
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm

moire = imageio.imread(imgpath1)
nonMoire = imageio.imread(imgpath2)

moire = np.dot(moire[...,:3], [0.2989, 0.5870, 0.1140])
nonMoire = np.dot(nonMoire[...,:3], [0.2989, 0.5870, 0.1140])

noisy_gray_fft = fft2(moire)
orig_gray_fft = fft2(nonMoire)

orig_gray_fft_shift = fftshift(orig_gray_fft)
noisy_gray_fft_shift = fftshift(noisy_gray_fft)

plt.subplot(121)
plt.imshow(np.abs(noisy_gray_fft_shift), cmap='gray', norm=LogNorm(vmin=5))
plt.subplot(122)
plt.imshow(np.abs(orig_gray_fft_shift), cmap='gray', norm=LogNorm(vmin=5))