RGB影像傅里叶变化

RGB影像傅里叶变化

关于傅里叶的讲解已经有很多博客了,看了好几篇也还是处于一种半懂不懂的状态
主要是想试一下用傅里叶函数交换两张影像的低频和高频信息
参考这两篇博客:
https://blog.csdn.net/qq_25138931/article/details/122699915
https://zhuanlan.zhihu.com/p/452137676
在这里插入图片描述

import cv2
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
import matplotlib.cm as c

def exchange(a,b):
    fft_1 = np.fft.fftshift(np.fft.fftn(a*1.0))
    fft_2 = np.fft.fftshift(np.fft.fftn(b*1.0))## 中心化

    abs_1, angle_1 = np.abs(fft_1), np.angle(fft_1)
    abs_2, angle_2 = np.abs(fft_2), np.angle(fft_2)

    fft_1 = abs_1*np.e**(1j*angle_2)
    fft_2 = abs_2*np.e**(1j*angle_1)
    x1 = np.abs(np.fft.ifftn(fft_1))
    x2 = np.abs(np.fft.ifftn(fft_2))
    return np.int16(x1/x1.max()*255),np.int16(x2/x2.max()*255)
#直接实现rgb傅里叶变换 

# 输出路径
outpath1 = r"F:/resultFLY1.png"
outpath2 = r"F:/resultFLY2.png"
# 1 读取图像
img = cv.imread("F:/img1.tif", 1)#有阴影
img1 = cv.imread("F:/img2.tif", 1)#无


rows, cols = img[:, :, 0].shape
img1 = cv.resize(img1, (int(cols), int(rows)))
i1,i2=exchange(img,img1)
cv.imwrite(outpath1,i1)#保留1低频,2高频
cv.imwrite(outpath2,i2) #保留2低频,1高频 

原图像
在这里插入图片描述
傅里叶变换后结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值