recent most last instalar python matlab computer-vision

most - opencv python install



VisiĆ³n artificial en Python (7)

He adquirido la imagen de la cámara FW usando .NET y IronPython. En CPython, compraría la biblioteca de ctypes, a menos que encuentre algún tipo de soporte de biblioteca para realizar capturas.

Me gustaría realizar algunas tareas básicas de visión artificial con Python y me gustaría saber dónde puedo encontrar tutoriales que me ayuden a comenzar.

Por lo que sé, la única biblioteca gratuita para Python que realiza la visión PyCV es PyCV (que PyCV ser una envoltura para OpenCV ), pero no puedo encontrar los tutoriales apropiados.

Mis tareas principales son adquirir una imagen de FireWire. Segmenta la imagen en diferentes regiones. Y luego realice estadísticas en cada región para determinar el área de píxeles y el centro de masa.

Anteriormente, he utilizado Matot ''s Image Processing Tootlbox sin ningún problema. Las funciones que me gustaría encontrar un equivalente en Python son graythresh , regionprops y gray2ind .

¡Gracias!


He comenzado un sitio web sobre este tema: pythonvision.org . Tiene algunos tutoriales, & c, y algunos enlaces a software. Hay más enlaces y tutoriales allí.


No sé mucho sobre este paquete Motmot o cómo se compara con OpenCV, pero he importado y usado una o dos clases de él. Gran parte del procesamiento de la imagen se realiza mediante matrices numpy y puede ser lo suficientemente similar a cómo ha utilizado Matlab para satisfacer sus necesidades.


OpenCV es probablemente tu mejor apuesta para una biblioteca; Usted tiene su elección de envoltorios para ellos. Miré el envoltorio SWIG que viene con la instalación estándar de OpenCV, pero terminé usando ctypes-opencv porque la administración de la memoria parecía más limpia.

Ambos son envoltorios muy finos alrededor del código C, por lo que cualquier referencia de C que pueda encontrar será aplicable a Python.

OpenCV es enorme y no está especialmente bien documentado, pero hay algunos ejemplos decentes incluidos en el directorio de ejemplos que puede utilizar para comenzar. Una referencia de la API de OpenCV de búsqueda está here .

No mencionó si estaba buscando en línea o fuentes impresas, pero tengo el libro de O''Reilly y es bastante bueno (ejemplos en C, pero fácilmente traducibles).

La función FindContours es un poco similar a regionprops; le proporcionará una lista de los componentes conectados, que luego puede inspeccionar para obtener su información.

Para umbrales puedes probar Threshold . Estaba seguro de que podrías pasarle una bandera para usar el método de Otsu, pero no parece que aparezca en los documentos allí.

No he encontrado funciones específicas correspondientes a gray2ind, pero pueden estar ahí.


Prólogo: este libro es más para las personas que desean tener una buena experiencia en la introducción a la visión por computadora o de la máquina, a pesar de que cubre lo que la pregunta original hizo.

[LIBRO]: Programación de Visión por Computadora con Python

En este momento puede descargar el borrador final de la página web del libro de forma gratuita en formato pdf :

http://programmingcomputervision.com/

De la introducción:

La idea detrás de este libro es brindar un punto de entrada de fácil acceso a la visión por computadora con la comprensión suficiente de la teoría y los algoritmos subyacentes como base para estudiantes, investigadores y entusiastas.

Lo que necesitas saber

  • Experiencia en programación básica. Debe saber cómo usar un editor y ejecutar scripts, cómo estructurar el código y los tipos de datos básicos. La familiaridad con Python u otros lenguajes de estilo de script como Ruby o Matlab ayudará.
  • Matemáticas básicas. Para hacer un uso completo de los ejemplos, es útil si conoce matrices, vectores, multiplicación de matrices, funciones matemáticas estándar y conceptos como derivados y gradientes. Algunos de los ejemplos matemáticos más avanzados se pueden omitir fácilmente.

Lo que vas a aprender

  • Programación práctica con imágenes usando Python.
  • Técnicas de visión artificial detrás de una amplia variedad de aplicaciones del mundo real.
  • Muchos de los algoritmos fundamentales y cómo implementarlos y aplicarlos usted mismo.

Probablemente SciPy bien servido por SciPy . Aquí está el tutorial introductorio para SciPy. Tiene muchas similitudes con Matlab. Especialmente el paquete matplotlib incluido, que se hace explícitamente para emular las funciones de trazado de Matlab. No creo que SciPy tenga equivalentes para las funciones que mencionaste. Hay algunas cosas que son similares. Por ejemplo, threshold es una versión muy simple de graythresh. No implementa el método de "Otsu", solo hace un umbral simple, pero eso podría estar lo suficientemente cerca.

Lamento no conocer ningún tutorial que esté más cerca de la tarea que describió. Pero si estás acostumbrado a Matlab y quieres hacer esto en Python, SciPy es un buen punto de partida.


documentación: Hace unos años utilicé OpenCV envuelto para Python bastante. OpenCV está ampliamente documentado, incluye muchos ejemplos e incluso hay un O''Reilly . Los envoltorios de Python que estaba usando eran lo suficientemente delgados, por lo que se requería muy poca documentación específica del envoltorio (y esto es típico de muchas otras bibliotecas envueltas). Me imagino que unos minutos para ver un ejemplo, como las pruebas unitarias de PyCV, sería todo lo que necesita, y luego podría concentrarse en la documentación de OpenCV que se adapte a sus necesidades.

Análisis: En cuanto a si hay una mejor biblioteca que OpenCV, mi opinión un tanto anticuada es que OpenCV es excelente si quiere hacer cosas bastante avanzadas (por ejemplo, seguimiento de objetos), pero posiblemente sea excesivo para sus necesidades. Suena como si el ndimage ndimage combinado con un poco de manipulación básica de arrays numpy pudiera ser suficiente.

adquisición: las opciones que conozco para la adquisición son OpenCV, Motmot o el uso de ctypes para interactuar directamente con los controladores. De estos, nunca he usado Motmot porque tuve problemas para instalarlo. Los otros métodos me parecieron bastante sencillos, aunque no recuerdo los detalles (lo cual es bueno, ya que significa que fue fácil).