我试图通过将其视为一个频谱将图像转换成音频信号在MATLAB 中的Aphex双对Windowlicker歌曲 。 不幸的是,我遇到了麻烦的结果。
这是我目前所面对的:
function signal = imagetosignal(path, format)
% Read in the image and make it symmetric.
image = imread(path, format);
image = [image; flipud(image)];
[row, column] = size(image);
signal = [];
% Take the ifft of each column of pixels and piece together the real-valued results.
for i = 1 : column
spectrogramWindow = image(:, i);
R = abs(ifft(spectrogramWindow));
% Take only the results for the positive frequencies.
signalWindow = R(1 : row / 2.0);
signal = [signal; signalWindow];
end
end
所以,我对我的形象的列取逆傅立叶变换,然后把它们放在一起,形成一个信号。 此外,该功能使用图像处理工具箱MATLAB读取图像。 我们的目标是有一些变化
spectrogram(imagetosignal('image', 'bmp'));
导致一些看起来像原来的图像。 我非常感谢任何帮助! 我刚学的信号处理,所以如果有一个明显的误解,不要感到惊讶。 谢谢!
编辑 :感谢戴夫! 我得到它的工作! 我结束了这一点:
function signal = imagetosignal(path, format)
% Read in the image and make it symmetric.
image = imread(path, format);
image = [image; flipud(image)];
[row, column] = size(image);
signal = [];
% Take the ifft of each column of pixels and piece together the results.
for i = 1 : column
spectrogramWindow = image(:, i);
signalWindow = real(ifft(spectrogramWindow));
signal = [signal; signalWindow];
end
end