FFT on Image Time Series

조회 수: 3 (최근 30일)
faisal sani
faisal sani 2022년 8월 11일
댓글: Faisal Sani Bala 2022년 10월 17일
I am working on a stream of images ( time series), where the images are captured by camera after illuminating with a sinusoidally modulated light source, I am interested in the response of the object captured by camera to the illuminating light source. Am I to use a one dimensional fft on each pixel location in the time series? two dimensional fft on each pixel location in the time series? or am I to use two dimensional fft on the whole image

채택된 답변

Jonas
Jonas 2022년 8월 11일
if the object of your camera is more or less static and illuminated with a temporally modulated light source and you are interested in how the object changes its appearance over time, i would use a 1d fft on each pixel location over time. this results into e.g. 200x200 = 40000 complex valued ffts over time if you image is e.g. 200x200. you then have to think about in how to combine those spectra. if you are interested in magnitude, you may e.g. combine the spectra by using e.g. mean, median or max of the magnitude spectra.
take the abs first before using e.g. mean to avoid loss of information due to contrary phase (e.g. imagine two pixels changing values sinusoidally, but one starting black, the other white. due to the 180° phase difference the spectra would delete each other if you dont take abs before e.g. mean)
also delete the mean value of each (not all) Pixel value before fft, since the DC fft coefficient (the mean value, 0 Hz) is usually much bigger in magnitude than the non 0 Hz values. this can be done pixel wise by e.g. vid-mean(vid,3) if vid is a 3d matrix containing the images stream with temporal dimension along dimension 3
  댓글 수: 9
faisal sani
faisal sani 2022년 8월 13일
This is the modification I have made, finally I am having variants of fft based images
finalResult_median = zeros(size(our_images_series,2),size(our_images_series,1));
finalResult_max = zeros(size(our_images_series,2),size(our_images_series,1));
finalResult_min = zeros(size(our_images_series,2),size(our_images_series,1));
k = 1; % counter variable in for loop
for r = 1:size(our_images_series, 1) % for number of rows of the image
for c = 1:size(our_images_series, 2) % for number of columns of the image
finalResult_median(k)= median(pixelwiseFFT(r,c,:));
finalResult_max(k) = max(pixelwiseFFT(r,c,:));
finalResult_min(k) = min(pixelwiseFFT(r,c,:));
k = k+1; % increment counter loop
end
end
Faisal Sani Bala
Faisal Sani Bala 2022년 10월 17일
I am working on a stream of images ( time series), where the images are captured by camera after illuminating with a chirp (non-stationary sinusoidal) light source, I am interested in the response of the object captured by camera to the illuminating light source. Is it possible to develop a single image from the image series based on the wavelet transform for each pixel series?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by