Windowlickerの Aphex Twin の曲のように、画像をスペクトログラムとして扱うことにより、MATLAB で画像を音声信号に変換しようとしています。残念ながら、結果が得られずに困っています。
これが私が現時点で持っているものです:
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
そのため、画像の列で逆フーリエ変換を行い、それらをまとめて信号を形成しています。また、この関数は Image Processing Toolbox for 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