저는 Matlab Newb입니다. 나는 현재 푸리에 변환 (Fourier Transformation)을 실험 중이며 주파수 필터 (k_min과 k_max 사이의 모든 주파수는 삭제)를 구현하려고합니다.Matlab : 복소수 배열 값 설정이 느립니다.
이를 실현하려면 푸리에 변환 된 이미지에서 각 픽셀을 삭제합니다. 다음 코드를 사용하고 있습니다.
% Example values
kmin = 0;
kmax = 300;
for i = 1:w
for j = 1:h
if norm([w/2, h/2] - [i,j]) < kmin || norm([w/2, h/2] - [i,j]) > kmax
Fs(j,i) = 0.0;
end
end
end
내 이미지는 약 1000x600입니다. 따라서 Fs는 1000x600의 복잡한 숫자 배열입니다. 이제 내 문제 : 왜 이렇게 느린가요? 내가 거의 픽셀을 0으로 설정하면 (예 : kmin = 10, kmax = 무한대) 코드는 빠르게 실행됩니다. 그러나 거의 모든 픽셀을 0.0 (예 : kmin = 0, kmax = 10)으로 설정해야한다면 엄청난 양의 완료 할 시간.
내가하는 일은 배열 항목을 0으로 설정하는 것입니다 (최악의 경우 1,000,000 개 미만의 항목, 복소수이므로 2 개의 요소 일 수 있음). 왜이 작업이 몇 분이 걸릴까요? :)
여기 MATLAB과 푸리에 도메인의 마스킹 주파수의 일부 세부 정보 : http://stackoverflow.com/a/19879538/2777181 –