wangchx67 / FourLLIE

This is the official pytorch implementation of "FourLLIE: Boosting Low-Light Image Enhancement by Fourier Frequency Information" (ACM MM 2023)
MIT License
96 stars 7 forks source link

如何可视化Phase和Amplitude分量 #17

Open Shecyy opened 8 months ago

Shecyy commented 8 months ago

您好,请问您方便分量一份关于论文图1(a)的代码吗?可视化Phase和Amplitude分量,并且交换低光照和正常光照的Amplitude之后,再次还原回低光照和正常光照。期待您的回复,十分感谢。邮箱:chunyanshe@foxmail.com image

duoxiangqinzuo commented 2 months ago

Amplitude_L乘以一个常数后,所有像素点的幅值都等比变大,可视化图像的时候再归一化到0-255,那等比变大再变小,效果不是一样吗?怎么会变亮呢?

duoxiangqinzuo commented 2 months ago

请问作者给你代码了吗

wangchx67 commented 2 months ago

归一化不是等比

wangchx67 commented 2 months ago

Amplitude_L乘以一个常数后,所有像素点的幅值都等比变大,可视化图像的时候再归一化到0-255,那等比变大再变小,效果不是一样吗?怎么会变亮呢?

类似地 直接放大低光照空域图像归一化后也是会变亮的

lgwplay commented 1 month ago

请问能提供一下相关这地方的相关代码吗

wangchx67 commented 1 month ago

% 读取两幅图像 img1 = im2double(imread('image1.jpg')); % 替换为你的图像文件名 img2 = im2double(imread('image2.jpg')); % 替换为你的图像文件名

% 计算傅里叶变换 F1 = fft2(img1); F2 = fft2(img2);

% 获取振幅谱和相位谱 magnitude1 = abs(F1); phase1 = angle(F1); magnitude2 = abs(F2); phase2 = angle(F2);

% 交换振幅谱和相位谱 newF1 = magnitude2 . exp(1i phase1); newF2 = magnitude1 . exp(1i phase2);

% 计算逆傅里叶变换 img1_swapped = abs(ifft2(newF1)); img2_swapped = abs(ifft2(newF2));

以上是基本的读取和交换过程,具体需求可以做修改,可视化我是用了mesh

lgwplay commented 1 month ago

% 读取两幅图像 img1 = im2double(imread('image1.jpg')); % 替换为你的图像文件名 img2 = im2double(imread('image2.jpg')); % 替换为你的图像文件名

% 计算傅里叶变换 F1 = fft2(img1); F2 = fft2(img2);

% 获取振幅谱和相位谱 magnitude1 = abs(F1); phase1 = angle(F1); magnitude2 = abs(F2); phase2 = angle(F2);

% 交换振幅谱和相位谱 newF1 = magnitude2 . exp(1i phase1); newF2 = magnitude1 . exp(1i phase2);

% 计算逆傅里叶变换 img1_swapped = abs(ifft2(newF1)); img2_swapped = abs(ifft2(newF2));

以上是基本的读取和交换过程,具体需求可以做修改,可视化我是用了mesh

感谢您的帮助,但是我在应用的时候遇到了两个问题,首先是处理图像的时候输入要求是灰度图,但是结果是rgb图片我们才可以很好的看明白变化,灰度图虽然也可以看出一些,但是不是很直观,这要怎么处理。第二个问题是,正常分解得到的幅值图,可视化时其他一个很小,在gt和input之间,在上面你们也讨论了这个放大变化的做法,但是我不是很懂是怎么做的,看了好多类似的论文,都没有找到大家在这的具体做法,期待你的回复。 捕获1 捕获

lgwplay commented 1 month ago

我大概能理解振幅我们知道亮度信息大部分都在这里面,把像素值都等比太高了,所以可视化的差别放大,但是具体代码怎么操作呢