473,405 Members | 2,154 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,405 software developers and data experts.

Flicker detection with DFT Problem

Hello Everybody,
I'm not very experienced with DFT and FFTW library and I want to ask
your opinion about the results I get.
My aim is to determine if the sample input sequence is flickering with
some frequency.
In my project, I'm capturing frames from a video and geting the mean
pixel value of some pixels with a certain property. I get one mean
value for each frame. I want to check if these mean pixel values are
flickering with the time or staying flat in comparison (not changing
very much). For example:
if I'm capturing 25 frames per second, I can detect if the pixel mean
values are changing with a frequency close to 10Hz. if the input sample
to be used in DFT is like: 230, 212, 236, 214, 243,...
then I can say that values are changing up and down (flickering) with a
frequency near 10 Hz. If the output array has some positive values
corresponding to 8,9,10,11,12Hz's I can classify this input sequence as
flickering.

In order to detect some frequencies in the sample input, I have used
the following code:
//n is the number of input samples
// averageRed is the array that holds the mean pixel values of each
frame

long double *in;
fftwl_complex *out;
fftwl_plan p;
in = (long double*) fftw_malloc(sizeof(long double) * n);
for (int i=0; i<n; i++){
in[i] = (long double)averageRed[i];
}
out = (fftwl_complex*) fftw_malloc(sizeof(fftwl_complex) *
averageIndex);
p = fftwl_plan_dft_r2c_1d(n, in, out, FFTW_ESTIMATE);
fftwl_execute(p);
fftwl_destroy_plan(p);
fftw_free(in);
for (int i=0; i<averageIndex; i++){
fprintf(output, "output %d -%f, %f\n", i, out[i][0], out[i][1]);
}
fftw_free(out);

The resuls of this calculation are as follows:
First 15 input to the transform: 223.000000,195.000000, 238.000000,
217.625000, 232.600000, 218.857143, 215.333333, 233.000000, 225.800000,
223.600000, 226.2857, 182.500000, 222.200000, 213.750000, 213.400000,
....
First 10 Outputs of the transform:
output 0 --2.000000, 0.000000
output 1 -0.000000, -2.000000
output 2 -0.000000, -0.000000
output 3 --2.000000, 0.000000
output 4 --0.000000, -2.000000
output 5 -0.000000, -0.000000
output 6 --2.000000, 0.000000
output 7 --0.000000, -2.000000
output 8 -0.000000, -0.000000
output 9 --2.000000, 0.000000
output 10 --0.000000, -2.000000

My questions are:
1-) It goes like: -2,0,0 until 264th output and later values are all 0
but the input array had 353 samples. Shouldn't it go until 176th frame
instead of the 264th?
*2-) The output values doesn't seem right to me. I think real parts
should not be negative and they should'nt repeat the same pattern!
3-) I should normalize the output by multiplying each output value by
25/353 (sample rate/N) right?

Hope that I can get some help about this.
Regards.

Jan 10 '07 #1
2 1996
Excuse me, I was going to send this to the comp.dsp mailing list. But I
would appreciate any help from here too ofcourse.
Sorry again.

Eren AYKIN yazdi:
Hello Everybody,
I'm not very experienced with DFT and FFTW library and I want to ask
your opinion about the results I get.
My aim is to determine if the sample input sequence is flickering with
some frequency.
In my project, I'm capturing frames from a video and geting the mean
pixel value of some pixels with a certain property. I get one mean
value for each frame. I want to check if these mean pixel values are
flickering with the time or staying flat in comparison (not changing
very much). For example:
if I'm capturing 25 frames per second, I can detect if the pixel mean
values are changing with a frequency close to 10Hz. if the input sample
to be used in DFT is like: 230, 212, 236, 214, 243,...
then I can say that values are changing up and down (flickering) with a
frequency near 10 Hz. If the output array has some positive values
corresponding to 8,9,10,11,12Hz's I can classify this input sequence as
flickering.

In order to detect some frequencies in the sample input, I have used
the following code:
//n is the number of input samples
// averageRed is the array that holds the mean pixel values of each
frame

long double *in;
fftwl_complex *out;
fftwl_plan p;
in = (long double*) fftw_malloc(sizeof(long double) * n);
for (int i=0; i<n; i++){
in[i] = (long double)averageRed[i];
}
out = (fftwl_complex*) fftw_malloc(sizeof(fftwl_complex) *
averageIndex);
p = fftwl_plan_dft_r2c_1d(n, in, out, FFTW_ESTIMATE);
fftwl_execute(p);
fftwl_destroy_plan(p);
fftw_free(in);
for (int i=0; i<averageIndex; i++){
fprintf(output, "output %d -%f, %f\n", i, out[i][0], out[i][1]);
}
fftw_free(out);

The resuls of this calculation are as follows:
First 15 input to the transform: 223.000000,195.000000, 238.000000,
217.625000, 232.600000, 218.857143, 215.333333, 233.000000, 225.800000,
223.600000, 226.2857, 182.500000, 222.200000, 213.750000, 213.400000,
...
First 10 Outputs of the transform:
output 0 --2.000000, 0.000000
output 1 -0.000000, -2.000000
output 2 -0.000000, -0.000000
output 3 --2.000000, 0.000000
output 4 --0.000000, -2.000000
output 5 -0.000000, -0.000000
output 6 --2.000000, 0.000000
output 7 --0.000000, -2.000000
output 8 -0.000000, -0.000000
output 9 --2.000000, 0.000000
output 10 --0.000000, -2.000000

My questions are:
1-) It goes like: -2,0,0 until 264th output and later values are all 0
but the input array had 353 samples. Shouldn't it go until 176th frame
instead of the 264th?
*2-) The output values doesn't seem right to me. I think real parts
should not be negative and they should'nt repeat the same pattern!
3-) I should normalize the output by multiplying each output value by
25/353 (sample rate/N) right?

Hope that I can get some help about this.
Regards.
Jan 10 '07 #2
RKS
long double *in;
fftwl_complex *out;
fftwl_plan p;
Just a tip before posting to comp.dsp.

You may also want to give the header file where fftwl_complex and
fftwl_plan are defined. You have to provide complete code if you want
some one to help you. Its important that you dont loose the fractions
in the whole process.

RKS.

Jan 12 '07 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Marek Mänd | last post by:
This seems an IE issue only: 4253 bytes testcase: http://www.hot.ee/idaliiga/testcases/ieselect/bnlinkingselectinmsie.htm Can one have 1) a mouseover/mouseout element on TBODY 2) change in...
5
by: Ian Stiles | last post by:
I have tried everything under the sun to get rid of horrible flashing and flickering that occurs on a CSharp form when the form hosts a TreeView or WebBrowser control and then you resize the form....
20
by: Charles Law | last post by:
This is actually a follow on from yesterday's post about masking mouse clicks in a user control. The solution I have implemented - from Herfried - places a transparent window over the entire...
3
by: Per Dunberg | last post by:
Hi all, I have to develop a "skinned" application and I have a problem with the graphics. When a form is loaded and displayed there's aways a flicker where all the controls are located on the...
3
by: seamlyne | last post by:
The first method I ever used for multiple state buttons was to create a graphic for each button for each state: AboutUs_on, AbooutUs_over, AboutUs_out, etc. That works great when there are just a...
17
by: pigeonrandle | last post by:
Hi, I have seen loads of different ways to do this, but the all seem to yield the same result - text that doesn't flicker when it's moving too slowly! Does anyone know 'the best way' to make text...
1
by: Wayne | last post by:
I've noticed some screen flicker when using Access 2003 under Vista and I'm curious as to whether this is a bug or peculiar to my machine. In design view, if I make changes to a form and then...
4
by: Frank Rizzo | last post by:
Hello, I inherited a large Winforms project that is suffering from excessive flicker when switching between portions of the application. I've noticed that most parts of the application (user...
0
by: Rainer Queck | last post by:
Hello NG, I had/have a bad flicker Problem with my Application. On starting some applications, while my app was running, the whole Display started to flicker. Even the desktop Icons! Looking...
10
by: Conrad Lender | last post by:
In a recent thread in this group, I said that in some cases object detection and feature tests weren't sufficient in the development of cross-browser applications, and that there were situations...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.