OpenCV python 傅里叶变换(低频域处理)

OpenCV python 傅里叶变换(低频域处理)

处理图片:[source.jpg]在这里插入图片描述

import cv2
import numpy as np
import matplotlib.pyplot as plt


def main():

    # 1.导入图片
    img_src = cv2.imread("source.jpg", cv2.IMREAD_GRAYSCALE)

    # 2.傅里叶变换
    f = np.fft.fft2(img_src)
    f_shift = np.fft.fftshift(f)

    # 3.低频域处理
    row, cols = img_src.shape
    c_row, c_col = int(row/2), int(cols/2)
    f_shift[c_row - 20:c_row + 20, c_col - 20:c_col + 20] = 0

    # 4.逆傅里叶变换
    if_shift = np.fft.ifftshift(f_shift)
    img_i = np.fft.ifft2(if_shift)

    # 5.显示结果图片
    img_i = np.abs(img_i)
    plt.figure("傅里叶变换", figsize=(10, 6))
    plt.subplot(121)
    plt.imshow(img_src, cmap="gray")
    plt.title("img_src")
    plt.axis("off")

    plt.subplot(122)
    plt.imshow(img_i, cmap="gray")
    plt.title("img_i")
    plt.axis("off")

    plt.show()


if __name__ == '__main__':
    main()

处理结果图片:
在这里插入图片描述

发布了59 篇原创文章 · 获赞 1 · 访问量 985
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览