2011-11-23 25 views
7

Encontré contornos en dos imágenes con el mismo objeto y quiero encontrar el desplazamiento y la rotación de este objeto. He intentado con cajas de contorno giradas de estos contornos y luego sus ángulos y puntos centrales, pero las rotaciones de cuadros delimitadores no hablan sobre la rotación del contorno correctamente porque es lo mismo para los ángulos a + 0, a + 90, a + 180, etc. grados. ¿Hay alguna otra buena manera de encontrar la rotación y el desplazamiento de los contornos? Tal vez algún uso de casco convexo, defectos de convexidad? He leído en Learning OpenCv sobre contornos coincidentes pero no me ha ayudado. ¿Podría alguien dar algún ejemplo?Contornos coincidentes - encontrar contornos desplazamiento

// edit: Tal vez hay alguna forma de usar algo similar a cadenas freeman para esto? Pero no puedo descifrar el algoritmo por el momento. Hacer cadena con ángulos entre el punto de secuencia y luego verificar la coincidencia de secuencia no funciona bien ...

+0

Podría ser mejor en dsp.stackexchange.com – endolith

Respuesta

3

Si el objeto tiene defectos de convexidad, entonces puede elegir un defecto, hacer un vector desde el centroide del primer contorno al centroide de este defecto A continuación, puede verificar los defectos en el segundo contorno e igualar el que utilizó anteriormente. De nuevo un vector del centroide del contorno al centroide del defecto coincidente.

De esto obtienes 2 segmentos (vectores) a partir de los cuales puedes obtener un desplazamiento y una rotación.

+0

Pero me pregunto si será efectivo para todo tipo de contornos. Por ejemplo, para detectar formas muy simples como cuadrados, etc. – krzych

+0

Es por eso que dije que si tiene defectos, si los objetos son cuadrados o círculos u otras formas básicas, necesitarás otro método. – Adrian

Cuestiones relacionadas