PS3 Eye SDK won’t give 50fps and creates strange image swaps
Posted: 27 August 2013 08:26 AM   [ Ignore ]
New Member
Rank
Total Posts:  6
Joined  2013-08-02

Hi,

I’m tryin to record a video in form of .bmp images but encounter two problems:

When looking at the image timing i see that i cannot get 50fps to work properly.
Although I create a cam with:

 

cam[i] = new CLEyeCameraCapture(windowNameguidCLEYE_COLOR_RAW
                                                         
CLEYE_VGA 50); 

i get the frames captured with about 80ms difference.

Also, i have strange swaps of images, which seem like an image is somehow buffered and saved later. Or it took some more time to save the image or whatever. Meaning that images that appear earlier or later in the image timeline description do not fit to the flow of the other images within this time window.

My code to record the images is the following:

while(_running)
        
{
            CLEyeCameraGetFrame
(_campCapBuffer);
            
            
// Resize Image to fit screen size
            
cvResize(pCapImage,resizedpCapImage,CV_INTER_NN);
            
cvShowImage(_windowNameresizedpCapImage);

            
//save Image to disk with date and time
            
GetSystemTime(&st;);
            
GetLocalTime(<);
            
            
//format image string -- TODO insert fast formatting here: http://fastformat.sourceforge.net/
            //clear string
            
sstm.str(std::string());

            
//complete filname        
            //sstm << prefix << _participant << i << "-" << "h" << st.wHour << "m" << st.wMinute << "s" << st.wSecond << "ms" << st.wMilliseconds << suffix;
            
sstm << prefix << _participant << << "-" << st.wHour << st.wMinute << st.wSecond <<  st.wMilliseconds << suffix;
            
image_name sstm.str();
            const 
char *image_name.c_str();

            
//try to save image
            
try {
                cvSaveImage
(cpCapImage); //bmp = speed!
            
}
            
catch (runtime_errorex{
                fprintf
(stderr"Exception converting image to PNG format: %s\n"ex.what());
            
}
            
            i
++;
            

        

which is based on the multicam example.
I would appreciate any help.

Profile
 
 
Posted: 29 August 2013 03:45 PM   [ Ignore ]   [ # 1 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  585
Joined  2009-09-17

Hi,

This might be due to your hard drive speed. Are you using SSD hard drive?
A better approach would to to create a queue of captured images and use separate thread to save them to the disk.

Something like this:

(Capture Thread) -> Queue -> (Image Save Thread)

Profile
 
 
Posted: 30 August 2013 07:52 AM   [ Ignore ]   [ # 2 ]
New Member
Rank
Total Posts:  6
Joined  2013-08-02

thank you for your reply

i figured the swaps might be to wrong spelling and image viewer confusion, I’ll check for that when managed the framerate.
unfortunately even with saving as .bmp i do not get 50fps out of this 640x480 rgb.

i think threading is a good idea but is this possible within the run() loop of this class ? if yes, what would be a way to start (reading?) ?

I’m not very familiar with threads.

Profile
 
 
Posted: 23 February 2014 11:07 PM   [ Ignore ]   [ # 3 ]
New Member
Rank
Total Posts:  2
Joined  2013-10-13

HI there
I am a green hand in image processing area.And i am looking for an image SDK which supports to create image or process image directly.My previous image tool can not work after my updating.It is more convenient for me to own a fine tool.So is there any other recommendation?Thanks a lot.

Profile
 
 
 
 


RSS 2.0     Atom Feed