Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Shecyy opened this issue Apr 2, 2024 · 8 comments
Open

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

Shecyy opened this issue Apr 2, 2024 · 8 comments

Comments

@Shecyy
Copy link

Shecyy commented Apr 2, 2024

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

@duoxiangqinzuo
Copy link

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

@duoxiangqinzuo
Copy link

请问作者给你代码了吗

@wangchx67
Copy link
Owner

归一化不是等比

@wangchx67
Copy link
Owner

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

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

@lgwplay
Copy link

lgwplay commented Oct 20, 2024

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

@wangchx67
Copy link
Owner

% 读取两幅图像
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
Copy link

lgwplay commented Oct 20, 2024

% 读取两幅图像 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
Copy link

lgwplay commented Oct 20, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants