OpenCV实现傅里叶滤波(个人笔记)

本文详细记录了利用OpenCV库在Python中实现傅里叶变换和滤波的过程,包括图像的傅里叶变换、高通滤波与低通滤波的应用,旨在帮助读者理解并掌握这一图像处理技术。
摘要由CSDN通过智能技术生成
import cv2 as cv
import numpy as np
from timeit import default_timer


def fft(gray_img):
    dft = cv.dft(np.float32(img), flags=cv.DFT_COMPLEX_OUTPUT)
    dft_shift = dft  # np.fft.fftshift(dft)
    magnitude_spectrum = 20 * np.log(cv.magnitude(dft_shift[:, :, 0], dft_shift[:, :, 1]))
    cv.normalize(magnitude_spectrum, magnitude_spectrum, 0, 255, cv.NORM_MINMAX)
    magnitude_spectrum = np.uint8(magnitude_spectrum)
    cv.imshow("mag", magnitude_spectrum)
    # ret, thresh = cv.threshold(magnitude_spectrum, 0, 255, cv.THRESH_OTSU)
    # cv.imshow("thresh", thresh)

    rows, cols = gray_img.shape

    # 将低频的信号设置为0
    # 一般不使用矩阵窗口,而是使用高斯窗口
    mask = np.full((rows, cols), fill_value=0, dtype=np.uint8)
    ratio = 0.5
    cv.ellipse(mask, (cols // 2, rows // 2), (int(ratio * cols), int(ratio * rows)), 0, 0, 360, 1, -1)
    # crow, ccol = rows // 2, cols // 2
    # dr, dc 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值