微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Python绘制平移图像后,找到高频中心的坐标

如何解决使用Python绘制平移图像后,找到高频中心的坐标

我正在尝试编写代码以检测图像中的莫尔条纹。我对使用Python进行图像处理非常陌生,所以如果解决方案不重要,请原谅。

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

我想获取这些“中心”的坐标,但是我不知道该怎么做。 我对每个建议都很满意!

代码

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[...,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),norm=Lognorm(vmin=5))

非摩尔纹原版:

Original non Moire

云纹原稿:

Original Moire

FFT后:

After FFT

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。