Giter Club home page Giter Club logo

cameracontrolinterface's Introduction

CameraControlInterface

Interface used in the Matlab Toolbox Project

Este proyecto tiene como objetivo la creación de un toolbox que permita utilizar cámaras reflex de diferentes marcas desde Matlab. De esta manera los desarrolladores de aplicaciones Matlab pueden utilizar este toolbox para obtener fotografías (y configurar la cámara para ello) a través de una cámara réflex conectada por USB al ordenador.

Hoy en día, la utilización de cámaras fotográficas junto a un procesamiento por ordenador se ha convertido en un elemento imprescindible para realizar muchos proyectos de investigación y artísticos. La necesidad de tomar fotografías en un momento determinado de la ejecución de los citados proyectos hace que sea cómodo y útil poder realizar estas fotografías desde el mismo entorno de ejecución del proyecto.

Por otra parte, la herramienta de software matemático Matlab es una de las más utilizadas para el procesamiento de imágenes, ya que su manera de trabajar está orientada a matrices, consiguiendo mejor rendimiento que otras herramientas y lenguajes de programación cuando los tipos de datos son vectoriales o matriciales (y las imágenes son matrices de valores). Además, el propio entorno de desarrollo Matlab incluye diversos toolbox (conjuntos de herramientas) entre los que se incluyen varios para el procesamiento y visualización de imágenes, facilitando la labor del usuario y del desarrollador.

Por este motivo, este proyecto pretende crear herramientas de Matlab que faciliten al desarrollador de software la creación de aplicaciones o scripts que interactuen con cámaras réflex de las dos marcas líderes en este mercado, Canon y Nikon, aunque dejando abierta la posibilidad de ampliación a otras marcas de de cámaras.

Para ello, se proporciona un programa de bajo nivel que crea un interfaz con una cámara, el cual permite la comunicación usuario-cámara mediante archivos XML. También se crea un toolboox de Matlab con funciones para interactuar con estas cámaras mediante la modificación de ficheros, con la ventaja de que está desarrollado para ser independiente de la cámara, por lo que se utilizarán sin necesidad de conocer la cámara conectada (siempre que esté dentro de la lista de cámaras soportadas).

La arquitectura que hemos adoptado para realizar el proyecto nos proporciona la posibilidad de ampliarlo sustituyendo el toolbox de Matlab anteriormente mencionado por otra herramienta o interfaz que pueda leer y escribir en ficheros de texto en formato XML.

Esto es posible porque hemos creado un programa intermedio entre el usuario y el SDK de la cámara correspondiente que gestiona las órdenes que le llegan desde la aplicación delusuario mediante un archivo de texto. Este programa monitoriza cambios en dicho archivo que interpreta como nuevas órdenes que envía a la cámara. El resultado de la ejecución de cada orden se escribiría en un fichero XML de salida. Por lo tanto, sea cual sea el interfaz que el usuario utilice para comunicarse con la cámara, este solamente haría lecturas y escrituras en ficheros, mientras el programa intermedio se encargaría del procesamiento de estos ficheros y control de la cámara.

Este proyecto incluiría los repositorios (del mismo usuario):

CameraControl_MatlabToolbox (Toolbox que utiliza esta interfaz)

cameraSimpleControlApp (Programa de ejemplo para controlar una cámara que utiliza el toolbox)

cameraHDR (Programa de ejemplo para hacer imágenes HDR que utiliza el toolbox)

cameraTimeLapser (Programa de ejemplo para hacer videos timelapse que utiliza el toolbox)

cameracontrolinterface's People

Contributors

gabriman avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.