Divide a data set (of 201*360) into M*N sub data (rectangular in fourier) and to apply FFT on each sub data sets
조회 수: 2 (최근 30일)
이전 댓글 표시
Dear MATALB community,
I need to divide a data of 201*360 into M*N sub data set which should be rectangular and then apply FFT on each data set.
aps = N;
n_aps = 360/aps;
fpoints=201;
N_fpoint = M;
for i=1:n_aps
data_s(:,:,i)=data((i-1)*aps+1:i*aps,:); % to make sub data sets
data_fft_s(:,:,i)=fft2(data_s(:,:,i),360,fpoints); % to apply fft
end
I need to divide data with M*N orientation and divide data on both dimension, since above mentioned code give different results.
I need guidance, please provide your valueable remarks. Thanks in advance.
댓글 수: 0
채택된 답변
yanqi liu
2022년 2월 7일
clc; clear all; close all;
data = imresize(imread('cameraman.tif'), [201, 360], 'bilinear');
M = 10; N = 5;
% apply FFT on each data set.
data2=blockproc(data,[M N],@myfun);
figure;
subplot(1,2,1); imshow(data,[]);
subplot(1,2,2); imshow(data2,[]);
figure;
subplot(1,2,1); imshow(data,[]);
subplot(1,2,2); imshow(log(abs(data2)),[]);
function y=myfun(block_struct)
y = real(fft2(double(block_struct.data)));
end
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Computer Vision with Simulink에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!