OpenCV pour Python L'installation d'OpenCV pour Python se fait assez simplement sur GNU/Linux (testé et fonctionnel sur Raspberry Pi): sudo apt-get install python-opencv Un grand nombre d'exemples sont disponibles dans le dossier samples>python2 de l'archive d'OpenCV téléchargeable sur le site du projet. De même, l'ouvrage Programming Computer Vision with Python (pdf disponible), offre des explications utiles dans la section consacrée à la librairie. Le code ci-dessous suffit à afficher le flux d'une webcam : import cv2 cap = cv2.VideoCapture(0) while True: ret,im = cap.read() cv2.imshow('video test',im) key = cv2.waitKey(10) Les informations qui suivent sont issues d'une démarche empirique visant à trouver un moyen de traiter de la vidéo en temps-réel avec Python. En s'appuyant sur cette image de 3*2 (agrandi pour le besoin du wiki), il est possible de comprendre comment sont stockées les informations relatives à celle-ci, comment y avoir accès et comment les modifier. Ainsi, ce script... donne-t-il: Remarque:
BioShock Infinite Lighting Programmers don't generally have reels, but we do have blogs. I've been explaining the rendering work I did on BioShock Infinite quite a bit due to recent events, and I thought it made sense to write some of it down here. For the bulk of development, I was the only on-site graphics programmer. As Principal Graphics Programmer I did quite a bit of implementation, but also coordinated and tasked any offsite rendering work. Goals One of our artists best described Infinite's style as "exaggerated reality." The size of the levels were bigger than anything Irrational had attempted before. We wanted a streamlined lighting pipeline for level artists. Finally, all of this had to perform well on all of our platforms. Hybrid Lighting System The lighting system we came up with was a hybrid system between baked and dynamic lighting: Deferred Lighting Dynamic lighting was handled primarily with a deferred lighting/light-pre pass renderer. We modified our BRDF to help solve this mid-project.
An Invitation to 3-D Vision. Yi Ma, Stefano Soatto, Jana Kosecka, Shankar Sastry. Springer Verlag, 2003 Endowing machines with a sense of vision has been a dream of scientists and engineers for over half a century. Only in the past decade, however, has the geometry of vision been understood to the point where this dream becomes attainable, thanks also to the remarkable progress in imaging and computing hardware. This book addresses a central problem in computer vision - how to recover 3-D structure and motion from a collection of 2-D images - using techniques drawn mainly from linear algebra and matrix theory. Written primarily as a textbook, the aim of this book is to give senior undergraduates and beginning graduate students in computer vision, robotics, and computer graphics a solid theoretical and algorithmic foundation for future research in this burgeoning field.
Structure Sensor: Capture the World in 3D by Occipital The Structure Sensor gives mobile devices the ability to capture and understand the world in three dimensions. With the Structure Sensor attached to your mobile device, you can walk around the world and instantly capture it in a digital form. This means you can capture 3D maps of indoor spaces and have every measurement in your pocket. If you’re a developer, Structure gives you the ability to build mobile applications that interact with the three dimensional geometry of the real world for the very first time. The Structure Sensor has been designed from the ground up to be mobile. The Structure Sensor has a mobile-optimized range that begins at 40 centimeters and stretches to over 3.5 meters. Battery-powered The Structure Sensor has its own onboard power supply that provides up to 4 hours of active use, and 1000+ hours of standby. Anodized aluminum chassis Dual infrared LEDs What does this mean in plain terms? You'll have full control over the IR LEDs from the SDK. Is my iPad supported? 1.
Coding The Matrix Scene Reconstruction from High Spatio-Angular Resolution Light Fields Project Members Changil Kim (Disney Research Zurich)Henning Zimmer (Disney Research Zurich)Yael Pritch (Disney Research Zurich)Alexander Sorkine-Hornung (Disney Research Zurich)Markus Gross (Disney Research Zurich) The images on the left show a 2D slice of a 3D input light field, a so called epipolar-plane image (EPI), and two out of one hundred 21 megapixel images that were used to construct the light field. Our method computes 3D depth information for all visible scene points, illustrated by the depth EPI on the right. From this representation, individual depth maps or segmentation masks for any of the input views can be extracted as well as other representations like 3D point clouds. The horizontal red lines connect corresponding scanlines in the images with their respective positions in the EPI. Abstract This paper describes a method for scene reconstruction of complex, detailed environments from 3D light fields. [Press Release] Datasets We provide the following as part of the datasets:
Computer Vision Models Rendering large terrains Today we’ll look at how to efficiently render a large terrain in 3D. We’ll be using WebGL to do this, but the techniques can be applied pretty much anywhere. We’ll concentrate on the vertex shader, that is, how best to use the position the vertices of our terrain mesh, so that it looks good up close as well as far away. To see how this end result looks, check out the live demo. An important concept when rendering terrain is the “level of detail”. Take the terrain below, notice how the nearby mountain on the right fills a lot of the final image, while the mountains in the distance only take a small portion of the image. It makes sense to render nearby objects with a greater LOD, while those in the distance with a lower LOD. An easy way to create a terrain mesh is to simply create a plane that covers our entire terrain, and sub-divide it into a uniform grid. A simple way to do better is to split our plane into tiles of differing sizes, but of constant vertex count.
Introduction à la vision par ordinateur Qu'est-ce que la vision ? Elle semble toute simple, cette question, mais si vous aviez à y répondre avec vos propres mots, que diriez-vous ? Allez, je vous aide un peu. « Voir » c'est, entre autres, discerner et reconnaître les formes, les couleurs et les textures du monde qui nous entoure. On pourrait croire, à tort, que nous avons besoin uniquement de nos yeux pour cela, mais la réalité est tout autre : nos yeux ne servent qu'à capter le signal contenu dans les rayons lumineux qui viennent frapper nos rétines, pas à en extraire des informations. Aujourd'hui, cela fait déjà bien longtemps que nous avons donné le sens de la vue aux ordinateurs grâce aux caméras numériques, mais si l'on se fie à la définition que nous venons de formuler, cela ne suffit pas à les doter de vision : il leur manque encore la capacité à extraire des informations des images et des flux vidéo, de manière à percevoir, analyser et comprendre le monde qu'ils observent.
The Littlest CPU Rasterizer | ginsweater's blog Okay, so I’ve been declaring for a long time that I’m going to blog about some of the stuff I’ve developed for my personal project, but I never seem to get around to it. Finally I thought I’d just start off with a cute little trick: here’s how I’m doing “image-based” occlusion for my sky light. A little while ago, while I was thinking about ambient lighting, I realized I actually had a simple enough problem that I could render very small cubemaps, on the CPU, in vast numbers. Here’s the basic underlying idea: A 16-by-16 black-and-white image is 256 bits, or 32 bytes. That’s exactly two SSE registers, or one AVX register. That is, you can store tiny cubemaps whole in your CPU’s SIMD registers! Next, I have a very limited problem domain. So I wrote a little bit of code to render out 4096 (that’s 16x16x16) black-and-white images of cubes, and toss them into a header file. (That’s a bit of a simplification, since I actually render three cubemap faces at once. So, results!