[visionegg] Re: raw movies
- From: Gabriel Nevarez <nevarezg@xxxxxxxx>
- To: Martin Spacek <mspacek@xxxxx>, "visionegg@xxxxxxxxxxxxx" <visionegg@xxxxxxxxxxxxx>
- Date: Fri, 30 Sep 2005 16:35:35 +0100
Hi, Martin,
Just wrote a python wrapper around the unix cat command to link the raw
bitmaps together, works like a champ, will never touch perl and shell
scripts again! (ok, I might keep perl, for special occasions)
Cheers!
-=Gabriel Nevarez
Research Programmer
Psychology Department
Cardiff University
http://www.cf.ac.uk/psych
On 29/9/05 2:32 am, "Martin Spacek" <mspacek@xxxxx> wrote:
> Hi Gabriel,
>
> Actually, we didn't make our raw movies, we got them from someone else.
> You might try some of the functions in matlab for doing this kind of
> thing. Or, even within Python, you can probably just take your bitmaps
> and write them sequentially directly to a single file, in whatever
> dimensional order makes the most sense to you.
>
> Cheers,
>
> Martin Spacek
> PhD student, Graduate Program in Neuroscience
> Dept. of Ophthalmology and Visual Sciences
> University of British Columbia, Vancouver, BC, Canada
> +1-604-875-4555 ext. 66282
> mspacek@xxxxx | http://swindale.ecc.ubc.ca
>
> Gabriel Nevarez wrote:
>> Hi, martin,
>>
>> Thanks for the code snippets. Actually, I pretty much figured out
>> everything you sent below from your previous post (talk about efficiency of
>> posting!).
>>
>> My main question was on the actual creation of the raw movies... Assuming
>> you have a bunch of bitmaps (such as those dumped by the makemovie.py demo),
>> what tools do you use to dump them into a raw movie? I've used a little mac
>> os9 app called Moover that compiles bitmaps into quicktime movies, but then
>> converting a quicktime movie to a raw movie (frame by frame raw output)
>> would be nice.
>>
>> Probably wouldn't take to long to write such an app (i.e, converting bitmaps
>> to a neutral format, such as PPM, then dumping as binary raw dumps), but
>> still, I'm sure there's one already out there to do it.
>>
>> Cheers,
>> -=Gabriel Nevarez
>> Research Programmer
>> Psychology Department
>> Cardiff University
>> http://www.cf.ac.uk/psych
>>
>>
>> On 23/9/05 12:02 am, "Martin Spacek" <visionegg@xxxxxxxxxxxxx> wrote:
>>
>>
>>> Hi Gabriel,
>>>
>>> Here's some snippets of how I ended up reading in an 8bit greyscale raw
>>> movie:
>>>
>>> # open the movie file for reading in binary format
>>> f = file(fname, 'rb')
>>> # read the whole file in using numarray
>>> m.data = numarray.fromfile(f, numarray.UInt8, (nframes,height,width))
>>> # flip the movie frames vertically for OpenGL's bottom left origin
>>> m.data = m.data[::,::-1,::]
>>>
>>> # Create an instance of the texture stim class
>>> texturestim = TextureStimulus(position = orig,
>>> anchor = 'center',
>>> mask = maskObject,
>>> max_alpha = 1.0,
>>> mipmaps_enabled = 0,
>>> texture_min_filter = gl.GL_NEAREST,
>>> texture_mag_filter = gl.GL_NEAREST,
>>> on = 0) # leave it off for now
>>> tp = texturestim.parameters
>>> to = tp.texture.get_texture_object()
>>>
>>> # Init OpenGL graphics screen
>>> screen = get_default_screen()
>>>
>>> # Create a Viewport instance
>>> viewport = Viewport(screen=screen, stimuli=[texturestim])
>>>
>>> # make a new texture that's sized according to the frame size of movie m
>>> tp.texture = Texture(m.data[0] , :: , :: ] ) # init texture to 1st frame
>>> tp.size = (m.regionwidth, m.regionheight) # size it, in screen pixels
>>> tp.on = 1; texturestim.draw() # draw it to the frame buffer
>>>
>>> # here's the movie loop
>>> for framei in range(0,nframes):
>>>
>>> # load the frame you want into the texture object
>>> to.put_sub_image(m.data[ framei , :: , :: ] )
>>>
>>> screen.clear()
>>> viewport.draw()
>>> swap_buffers()
>>>
>>> About a year ago, Andrew made a change in the TextureStimulus() class
>>> that lets you make a texture object out of a numarray. Previously, that
>>> wasn't allowed, and I had to use a Numeric array instead - which is
>>> really slow at loading in big raw movie files. See:
>>>
>>> http://www.freelists.org/archives/visionegg/09-2004/msg00007.html
>>>
>>> Loading the file as a numarray and updating the texture in the movie
>>> loop in pure Python ended up being as fast as (or maybe faster than?)
>>> doing it with a C extension. If you want some more context for the above
>>> snippets, download the whole module:
>>>
>>> http://www.ece.ualberta.ca/~mspacek/Dimstim_2005-06-08.zip
>>>
>>> and take a look at the Movies.py file in the Dimstim folder. It's
>>> invoked by the movies.py file in the Experiments folder.
>>>
>>> Cheers,
>>>
>>> Martin Spacek
>>> PhD student, Graduate Program in Neuroscience
>>> Dept. of Ophthalmology and Visual Sciences
>>> University of British Columbia, Vancouver, BC, Canada
>>> +1-604-875-4555 ext. 66282
>>> visionegg@xxxxxxxxxxxxx | http://swindale.ecc.ubc.ca
>>>
>>> Gabriel Nevarez wrote:
>>>
>>>> Hi, Martin,
>>>>
>>>> I noticed in a post you sent last year about loading raw movies into
>>>> visionegg, was wondering if you had any recommendations on the best way to
>>>> create them.
>>>>
>>>> I'm running into a situation where python's simply too slow to create
>>>> trials
>>>> on the fly, so I need to play them back as movies.
>>>>
>>>> Right now, I'm importing TIFF files individually into the playback
>>>> numarray,
>>>> but I guess loadup times would be much quicker if they were in a single raw
>>>> movie.
>>>>
>>>> Btw, have you found a better way to play back movies in visionegg? I
>>>> noticed you mentioned having created a c extension, does it tend to work
>>>> quicker?
>>>>
>>>> Cheers,
>>>> -=Gabriel Nevarez
>>>> Research Programmer
>>>> Psychology Department
>>>> Cardiff University
>>>> http://www.cf.ac.uk/psych
>>>>
>>>>
>>>> ======================================
>>>> The Vision Egg mailing list
>>>> Archives: http://www.freelists.org/archives/visionegg
>>>> Website: http://www.visionegg.org/mailinglist.html
>>>
>>> ======================================
>>> The Vision Egg mailing list
>>> Archives: http://www.freelists.org/archives/visionegg
>>> Website: http://www.visionegg.org/mailinglist.html
>>
>>
>>
>> ======================================
>> The Vision Egg mailing list
>> Archives: http://www.freelists.org/archives/visionegg
>> Website: http://www.visionegg.org/mailinglist.html
======================================
The Vision Egg mailing list
Archives: http://www.freelists.org/archives/visionegg
Website: http://www.visionegg.org/mailinglist.html
Other related posts: