[Motmot] motmot.cam_iface + isight + snowleopard

Andrew Straw astraw at caltech.edu
Wed Feb 3 16:27:54 UTC 2010


Hi Laurent,

Thanks for the tips, and I'm glad you eventually got it working.

Apple will not port their old Carbon-based libraries to 64-bit, so the
camiface QuickTime backend will have to be re-written to use the newer
QTKit, the up-to-date QuickTime library. Unfortunately, this will
require me to brush up on my Objective C skills...

Also, I had to rescue your email from the motmot moderator list -- it
appears you are not subscribed.

-Andrew

Laurent Perrinet wrote:
> Hi list!
>
> I'm trying to grab frames from the iSight of a macbook. This was working well with pysight (*) but broke with the advent of Snow Leopard.
>
> I was trying the motmot.cam_iface library since it appears to be implementing all I need. It seems to work in Leopard, but I thought I should share my adventures in trying to make it work on my platform (snow leopard) which drops support for Carbon and tries to push 64-bit forward.
>
> First I tried the compiled version on:
>
> http://code.astraw.com/libcamiface/download/libcamiface-0.5.9-Darwin.dmg
>
> the /usr/bin/liveview-glut-quicktime and /usr/bin/liveview-glut-mega work just fine. they apparently run in 32-bit mode:
>
> $ file /usr/bin/liveview-glut-mega
> /usr/bin/liveview-glut-mega: Mach-O executable i386  
>
> now, I try to use the python interface. obviously, using macports or apple's 64-bit version says:
>
> $ /opt/local/bin/python
> Python 2.6.4 (r264:75706, Oct 31 2009, 11:56:27) 
> [GCC 4.2.1 (Apple Inc. build 5646)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
>   
>>>> import sys
>>>> sys.maxint
>>>>         
> 9223372036854775807
>   
>>>> import motmot.cam_iface
>>>> # Also the example in ../README.rst -- so keep in sync
>>>>         
> ... import pkg_resources
>   
>>>> import motmot.cam_iface.cam_iface_ctypes as cam_iface
>>>>         
> import numpy as np
>
> mode_num = 0
> device_num = 0
> num_buffers = 32
>
> Could not open shared library for backend "libcam_iface_mega.dylib"
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/motmot.cam_iface-0.5.0-py2.6.egg/motmot/cam_iface/cam_iface_ctypes.py", line 55, in <module>
>   File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/__init__.py", line 353, in __init__
>     self._handle = _dlopen(self._name, mode)
> OSError: dlopen(libcam_iface_mega.dylib, 6): no suitable image found.  Did find:
> 	/usr/lib/libcam_iface_mega.dylib: mach-o, but wrong architecture
>
>
> So I tried to compile myself (that is in 64-bit mode) using the latest code in http://github.com/motmot/libcamiface
> ::
>
> sudo port install glew
> mkdir build
> cd build
> cmake .. -DCMAKE_GENERATOR=Xcode
> make
> cpack
>
>
>
> However I could not compile whatever combinaison I tried (except pretending I was on Leopard 32-bit in xCode... certainly a problem with carbon which is dicontinued in SL). I was clueless whether I would see any other alternative than switching back to Leopard?
>
> So I gave a try to the python distributed by enthought : 'Enthought Python Distribution Academic Download' : http://www.enthought.com/products/edudownload.php , that is 'only' 32-bit... sounded like an asset to me...
>
> it comes with all batteries inluded (numpy, scipy, matplotlib) + some bonus (mayavi, ...), but in particular easy_install:
>
> sudo easy_install motmot.cam_iface
>
> then in ipython:
>
> import pkg_resources
> import motmot.cam_iface.cam_iface_ctypes as cam_iface
> import numpy as np
>
> mode_num = 0
> device_num = 0
> num_buffers = 32
>
> cam = cam_iface.Camera(device_num,num_buffers,mode_num)
> cam.start_camera()
> frame = np.asarray(cam.grab_next_frame_blocking())
> print 'grabbed frame with shape %s'%(frame.shape,)
>
>
> just ... works!
>
> so the moral is: early optimization (= 64-bit) is evil!
>
> you may see a dummy demo: http://www.incm.cnrs-mrs.fr/LaurentPerrinet/SimpleCellDemo 
>
> cheers,
> Laurent
>
> * http://livingcode.blogspot.com/2005/10/pysight-preview.html
> ----
> Laurent Perrinet - INCM (UMR6193)/CNRS 
> http://incm.cnrs-mrs.fr/LaurentPerrinet
>
> _______________________________________________
> Motmot mailing list
> Motmot at code.astraw.com
> http://code.astraw.com/cgi-bin/mailman/listinfo/motmot
>
>   


-- 
Andrew D. Straw, Ph.D.
California Institute of Technology
http://www.its.caltech.edu/~astraw/



More information about the Motmot mailing list