Próbuję przekonwertować obraz na sygnał audio w MATLAB, traktując go jako spektrogram as in Aphex Twin's song on Windowlicker. Niestety, mam problem z uzyskaniem wyniku.Odwrócony Spectrogram A La Aphex Twin w MATLAB
tutaj to, co mam w tej chwili:
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
Więc biorę Inverse transformacji Fouriera na łamach mojego obrazu, a następnie umieszczając je ze sobą, tworząc sygnał. Ta funkcja wykorzystuje także narzędzie Image Processing Toolbox do odczytu MATLAB na obrazach. Celem jest uzyskanie pewnej odmiany efektu, aby uzyskać efekt podobny do obrazu oryginalnego. Byłbym wdzięczny za każdą pomoc! Po prostu uczę się przetwarzania sygnału, więc nie zdziw się, jeśli pojawi się oczywiste błędne przekonanie. Dzięki!
Edit: Dzięki Dave! Mam to działa! Skończyło się tak:
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
Co to jest dokładnie problem? – gnovice
W drodze powrotnej skutecznie brakuje górnej połówki obrazu, a to, co pozostawia smugi w górę, strasznie. –
Cieszę się, że działa. Zapraszam do wyboru mojej odpowiedzi;) –