Tôi đang cố gắng chuyển đổi hình ảnh thành tín hiệu âm thanh trong MATLAB bằng cách xử lý nó như một quang phổ as in Aphex Twin's song on Windowlicker. Rất tiếc, tôi gặp sự cố khi nhận kết quả.Kính hiển vi đảo ngược A La Aphex Twin trong MATLAB
Ở đây nó những gì tôi có vào lúc này:
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
Vì vậy, tôi đang tham gia Inverse Fourier Transforms trên các cột của hình ảnh của tôi và sau đó đặt chúng lại với nhau để tạo thành một tín hiệu. Ngoài ra, chức năng này sử dụng Hộp công cụ xử lý hình ảnh cho MATLAB để đọc trong hình ảnh. Mục tiêu là có một số biến thể của
spectrogram(imagetosignal('image', 'bmp'));
dẫn đến kết quả giống như hình ảnh gốc. Tôi rất cảm kích mọi sự giúp đỡ! Tôi chỉ đang học xử lý tín hiệu, vì vậy đừng ngạc nhiên nếu có một quan niệm sai lầm rõ ràng. Cảm ơn!
Chỉnh sửa: Cảm ơn Dave! Tôi hiểu rồi! Tôi đã kết thúc với điều này:
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
Vì vậy, chính xác thì sự cố bạn đang gặp phải là gì? – gnovice
Trên đường trở lại, nửa trên của hình ảnh bị thiếu hiệu quả, và những gì vẫn còn smears trở lên khủng khiếp. –
Vui vì nó hoạt động. Vui lòng chọn câu trả lời của tôi;) –