ImageImageImageImage
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

Visión artificial: Comparación de imagenes

Postea aqui todos los temas generales relacionados con la robotica, noticias, novedades....

Moderator: Junta Directiva

Post Reply
Jim
Iniciado
Iniciado
Posts: 49
Joined: Sat Jul 11, 2009 6:34 pm

Visión artificial: Comparación de imagenes

Post by Jim » Mon Sep 07, 2009 12:27 pm

Hola gente estoy realizando un pequeño proyecto para detectar movimiento con una webcam. No es nada novedoso pero es algo que llama mi curiosidad. Hasta ahora he podido con visual basic obtener la imagen de la webcam y guardarla cada 2 segundos con un timer.

Ahora quiero hacer el siguiente paso, comparar la foto anterior con la actual. Supongo que se compara bit a bit, aunque sería demasiado sensible ante variaciones del exterior como sombras. Buscando por internet he visto que se tiene que capturar las matrices roja,verde y azul de los pixeles de la imagen. Alguien sabe que función utilizar en vb para capturar dichas matrices? O se utiliza otro metodo?

Gracias
Last edited by weeberp on Sun Mar 20, 2016 10:54 am, edited 1 time in total.
Reason: Titulo incorrecto.

FJ_Sanchez
Usuario Desarrollador
Usuario Desarrollador
Posts: 1082
Joined: Wed Jun 07, 2006 11:09 pm
Nombre: Francisco Javier Sánchez
Location: Vejer de la Frontera
Contact:

Re: Visión artificial: Comparación de imagenes

Post by FJ_Sanchez » Mon Sep 07, 2009 1:18 pm

Muy buenas, si quieres hacerlo desde cero usando VB, adelante. Pero te sugiero que pruebes alguna librería como OpenCV, que ya trae rutinas para estas cosas, así te será más fácil ir incorporando nuevas funcionalidades.

Aquí un ejemplo hecho con VB usando las funciones de OpenCV:
https://www.youtube.com/watch?v=2ZbDbbkp51I ¡Suerte!
Last edited by weeberp on Sun Mar 20, 2016 10:56 am, edited 1 time in total.
Reason: mal texto y actualizado codigo youtube
_ _ _ _ _ _ _ _ _ _

Hack your mind \\ F.J. Sánchez

Okupa tu mente. \\ _ _ _ _ _ _ _ _ _ _ _ _

User avatar
furri
Usuario Desarrollador
Usuario Desarrollador
Posts: 2707
Joined: Mon Aug 22, 2005 8:16 pm
Nombre: Francisco Reinoso
Location: Marbella
Contact:

Re: Visión artificial: Comparación de imagenes

Post by furri » Mon Sep 07, 2009 5:01 pm

Yo empecé con VB en mi primer proyecto de visión artificial, es muy divertido sobre todo cuando tu mismo te encargas de programar los algoritmos de comparación, filtrado, calculo de centroides, etc... asi aprendes muchísimo.

Cuando necesitas algo mas de velocidad (te aseguro que lo necesitarás en poco tiempo) visual basic se te quedará lento y tendrás que migrar a C++.

En cuanto a librerias, nunca he trabajado con OpenCV pero casi todo el mundo habla bien de ella asi que mala no va a ser...

como ha dicho FJ_Sanchez... suerte...
furri.
Last edited by weeberp on Sun Mar 20, 2016 10:59 am, edited 1 time in total.
Reason: Titulo incorrecto.
xBotPinguBotTarriBot

"Gracias a la LPI estoy mejorando mi nivel de ingles..."

Jim
Iniciado
Iniciado
Posts: 49
Joined: Sat Jul 11, 2009 6:34 pm

Re: Visión atrificial: Comparación de imagenes

Post by Jim » Mon Sep 07, 2009 11:56 pm

Perdonad mi ignorancia pero Open CV es una libreria de c++ o otro tipo de codigo? Hasta ahora lo que he conseguido es conectar una webcam al pc con el usb y que se vayan guardando imagenes cada 5 segundos en la unidad C. Dices que el c++ es mas rapido...un pic tiene suficiente aguante para este tipos de programas (en un futuro no muy lejano,espero, quiero hacer un rastreador con una webcam) ?

Otra duda que tengo es si con una webcam se pueden detectar obstaculos ya que captando tan solo una imagen no puedes saber si se trata de una mesa o de un dibujo pintado en la paret..tampoco se puede determinar la distancia que se encuentra dicho obstaculo. Supongo que se tiene que complementar con otros sensores no?

FJ_Sanchez
Usuario Desarrollador
Usuario Desarrollador
Posts: 1082
Joined: Wed Jun 07, 2006 11:09 pm
Nombre: Francisco Javier Sánchez
Location: Vejer de la Frontera
Contact:

Re: Visión artificial: Comparación de imagenest

Post by FJ_Sanchez » Tue Sep 08, 2009 9:22 am

Jim wrote:Perdonad mi ignorancia pero Open CV es una libreria de c++ o otro tipo de codigo? Hasta ahora lo que he conseguido es conectar una webcam al pc con el usb y que se vayan guardando imagenes cada 5 segundos en la unidad C. Dices que el c++ es mas rapido...un pic tiene suficiente aguante para este tipos de programas (en un futuro no muy lejano,espero, quiero hacer un rastreador con una webcam) ?

Otra duda que tengo es si con una webcam se pueden detectar obstaculos ya que captando tan solo una imagen no puedes saber si se trata de una mesa o de un dibujo pintado en la paret..tampoco se puede determinar la distancia que se encuentra dicho obstaculo. Supongo que se tiene que complementar con otros sensores no?
Buenas, OpenCV es para C/C++, pero como ya te he comentado existen bindings/wrappers para poder usarlo con otros lenguajes:

Wrapper para .NET (VisualBasic, C#, VC++, IronPython, etc.): http://www.emgu.com/wiki/index.php/Main_Page" onclick="window.open(this.href);return false;
Wrapper para Python: http://opencv.willowgarage.com/wiki/PythonInterface" onclick="window.open(this.href);return false;
Gema para ruby: http://rubyforge.org/projects/opencv/" onclick="window.open(this.href);return false;
Port para usarlo con processing: Java:http://ubaa.net/shared/processing/opencv/

Como verás, hay muchas opciones, ya que se trata de una librería muy popular y optimizada para arquitecturas de Intel. Cuando preguntas que si un PIC tiene suficiente aguante... supongo que quizás un PIC32 pueda usarse para estos menesteres, pero desde luego no creo que haya un port de OpenCV para PIC32 y tampoco un compilador de C++ para el mismo.

Lo de la distancia si que puede hacerse una estimación si previamente se ha identificado el objeto y se le ha asociado unas medidas. Por ejemplo, primero detectas el objeto y calibras tu aplicación para que esa imagen se corresponda con una distancia, posteriormente se busca ese patrón y según lo transformado que esté podrás estimar la distancia. Puede ser algo complicado, pero creo que funcionaría.
Last edited by weeberp on Sun Mar 20, 2016 10:58 am, edited 1 time in total.
Reason: Titulo incorrecto.
_ _ _ _ _ _ _ _ _ _

Hack your mind \\ F.J. Sánchez

Okupa tu mente. \\ _ _ _ _ _ _ _ _ _ _ _ _

Jim
Iniciado
Iniciado
Posts: 49
Joined: Sat Jul 11, 2009 6:34 pm

Re: Visión atrificial: Comparación de imagenes

Post by Jim » Thu Sep 17, 2009 11:56 am

Hola,

Despues de unos cuantos dias ya he conseguido detectar movimiento con una webcam con el software Processing que me recomendaron en la universidad.

Alguien sabe como hacer un http post en Processing o bien en java? ( no javascript).

Gracias chicooos!

User avatar
fusion
Usuario Avanzado
Usuario Avanzado
Posts: 389
Joined: Tue Oct 09, 2007 2:12 pm
Nombre: Javier Lopez Segura
Location: Madrid
Contact:

Re: Visión artificial: Comparación de imagenes

Post by fusion » Tue Nov 24, 2015 9:50 am

Opencv se puede usar en pitón que es un lenguaje muy sencillo de manejar.
Para instalar la opencv 3.0 necesitas un ordenador con linux ó con windows7 y un visual estudio potente ó el mingw sobre codeblocks.

Aquí hay descrito como se monta en una raspberry pi-2 y un programa muy sencillo de ejemplo:

Instalación de opencv en raspberry

Si te interesa, aquí he puesto que hay que hacer paso a paso para tener configurada las raspberry antes de empezar:
instalación de raspberry
Last edited by weeberp on Sun Mar 20, 2016 10:58 am, edited 1 time in total.
Reason: Titulo incorrecto.

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 1 guest