Preguntas frecuentes sobre la Región de Interés (ROI)

Actualizado el May 11, 2019

Reportado en

Software

  • Vision Development Module
  • Vision Assistant
  • Vision Builder for Automated Inspection
  • LabWindows/CVI

Driver

  • Vision Acquisition Software
  • NI-IMAQ
  • NI-IMAQdx

Detalles del problema

  • ¿Qué es una Región de Interés (ROI)?
  • ¿Por qué recibo un error al utilizar IMAQ Read Barcode VI?
  • ¿Por qué IMAQ Transform ROI VI devuelve coordenadas negativas?
  • ¿Por qué mi imagen es demasiado grande para usar la función CWIMAQVision.MaskToRegions en Visual Basic?
  • ¿Cómo puedo extraer un ROI de forma libre?
  • ¿Cómo muestro una ROI seleccionada en una nueva ventana?
  • ¿Por qué obtengo valores inexactos / diferentes al usar la función Clamp?
  • ¿Cómo creo un ROI rectangular a partir de un conjunto de puntos en LabWindows / CVI?
  • ¿Cómo construir un ROI a partir de un contorno en LabWindows / CVI?
  • ¿Cómo funcionan las ROI con el reconocimiento óptico de caracteres (OCR)?

Solución

¿Qué es una Región de Interés?


Una región de interés (ROI) es un área de una imagen, que se selecciona gráficamente desde una ventana que muestra esa imagen, en la que desea enfocar su análisis de imagen. Esta área se puede utilizar para enfocar el procesamiento posterior. El siguiente documento contiene información sobre las funciones de ROI y la forma en que se utilizan.


¿Por qué recibo un error al utilizar IMAQ Read Barcode VI?


Recibirá el error -1074395720 IMAQ Read Barcode, ROI no válido al utilizar IMAQ Read Barcode VI si el descriptor de la ROI utilizado es incorrecto. La mejor manera de resolver esto es usar un VI para convertir una forma en un ROI para generar el descriptor de la ROI correcto. Puede utilizar un VI ubicado en la subpaleta Region of Interest Conversion. Esta paleta se puede encontrar en LabVIEW yendo a Functions»Vision and Motion»Vision Utilities»Region of Interest»Region of Interest Conversion.



¿Por qué IMAQ Transform ROI VI devuelve coordenadas negativas?


Cuando usa el IMAQ Transform ROI VI para rotar un ROI, el VI puede devolver un resultado incorrecto y dar coordenadas negativas para el ROI. Si esto sucede, debe asegurarse de estar usando la versión más reciente de NI Vision que sea compatible con su versión de LabVIEW. Puede encontrar una lista completa de las versiones compatibles de NI Vision y LabVIEW en Versiones compatibles de Vision Development Module con LabVIEW y LabWindows / CVI (en inglés).


¿Por qué mi imagen es demasiado grande para usar la función CWIMAQVision.MaskToRegions en Visual Basic?


Esta función transforma una imagen de máscara en una colección de regiones. Por defecto, tiene un límite de 2500 puntos. Si desea utilizar más de 2500 puntos, puede establecer el parámetro MaxPoints en el valor que desea usar. Como alternativa, puede dividir su imagen en varias imágenes y luego procesarlas en segmentos. Puede encontrar una descripción completa de todas las funciones de Vision y sus propiedades y métodos en la NI Vision for Visual Basic Reference Help. Esto se instalará en su computadora de manera predeterminada si tiene instalado NI Vision. Se puede encontrar yendo a Start»Programs»National Instruments»Vision»Documentation»NI Vision. Abra el archivo llamado cwimaq.chm.


¿Cómo puedo extraer un ROI de forma libre?


El data-type de una imagen en NI Vision actualmente admite imágenes rectangulares; esto significa que los datos de imagen deben almacenarse en forma de matriz 2D. Debido a esto, la mayoría de los usuarios elegirán seleccionar y extraer ROIs rectangulares.

Un método rápido para extraer un ROI consiste en obtener un descriptor de ROI rectangular utilizando IMAQ Construct ROI VI, este descriptor se puede incluir en IMAQ Extract Tetragon VI, que extrae el ROI de la imagen original. Este método es específico para extraer ROIs rectangulares; a continuación se describe un medio más robusto para extraer ROIs.

Los descriptores de la ROI de forma libre, no rectangulares, también se obtienen utilizando IMAQ Construct ROI VI. Para extraer ROI no rectangulares, se toman medidas especiales después de obtener el descriptor de la ROI; Esto se describe en la siguiente figura. El descriptor de la ROI se convierte en una máscara, la máscara se aplica a la imagen original y se realiza un recorte rectangular alrededor de la ROI. ExtractFreeshapeROI.vi tomará una imagen como entrada, pida a los usuarios que seleccionen el ROI en una ventana emergente emergente y generen el ROI extraído como una nueva imagen. Puede encontrar más información en el siguiente enlace Comunidad. Ejemplo: extracción de un ROI de Freeshape (en inglés).

¿Cómo muestro una ROI seleccionada en una nueva ventana?


Puede mostrar una ROI en su propia ventana si puede obtener el Descriptor de ROI. El Descriptor de ROI es un grupo de datos específico que IMAQ utiliza para llevar la ubicación de la posición para un ROI. Está disponible como una salida en varios IMAQ VIs, incluyendo IMAQ ConstructROI, IMAQ WindGetROI, IMAQ MaskToROI y cualquier VI en la subpaleta de Functions»Vision and Motion»Vision Utilities»Region of Interest»Region of Interest Conversion. Si usa el software Vision Acquisition 2009 o posterior, tendrá acceso al IMAQ Extract Tetragon VI. Como se ve a continuación, IMAQ Extract Tetragon VI toma el Descriptor de ROI como una entrada directa y extrae la imagen dentro del área definida por el Descriptor de ROI. El IMAQ WindDraw VI toma esta imagen y la muestra en una ventana de imagen separada.

Si está utilizando una versión de Vision Acquisition Software antes de 2009, hay algunos pasos adicionales que deberá completar para mostrar la ROI en una ventana separada. Primero debe desagrupar el clúster del Descriptor de ROI para obtener el Array de Contornos. Si indexa este Array, puede obtener un clúster que contiene el Array de coordenadas. Estas coordenadas describen la ubicación rectangular para el ROI. Si usa estas coordenadas y el IMAQ Extract VI, puede crear una nueva imagen que contenga solo la región de la primera imagen contenida en las coordenadas especificadas (que es el ROI). Puede mostrar esta nueva imagen en su propia ventana utilizando el IMAQ WindDraw VI.

Ambos métodos solo se pueden utilizar con selecciones de ROI rectangulares. Si desea mostrar un retorno de la inversión que no es rectangular, puede usar el IMAQ WindDraw VI junto con el ejemplo ExtractFreeshapeROI.vi (en inglés) descrito anteriormente.


¿Por qué obtengo valores inexactos/diferentes al usar la función Clamp?


Cuando dibuja una ROI alrededor de un objeto en particular con la función Clamp en Vision Assistant, obtiene un valor de medición particular para la distancia. Si dibuja un ROI diferente alrededor del mismo objeto, puede obtener una medida diferente a la primera. Esto se debe al espaciado del perfil de línea en la abrazadera (Clamp). Estos perfiles de línea recorren la distancia de la abrazadera (Clamp) y devuelven el primer borde que encuentran. Cuanto más dispersos estén los perfiles de línea, más probable será que la abrazadera (Clamp) pierda el punto máximo o mínimo real en el contorno que se va a medir. Cuando se dibuja una nueva ROI, los perfiles de línea se desplazan ligeramente, por lo que se puede leer un valor diferente.

Para evitar este problema, reduzca el valor de Gap en la función de sujeción. Esto disminuirá el espacio entre los perfiles de línea. Al reducir el valor de Gap, la medición tendrá una mayor precisión, pero llevará más tiempo de procesamiento. Utilice un valor de Gap mayor para bordes rectos u objetos con poca variación. Use un valor de Gap inferior cuando mida objetos con características detalladas o ángulos que se pueden pasar por alto.

Nota: Cuando se usan los VIs de abrazadera (Clamp) en LabVIEW, el valor de Gap se conoce como la relación de submuestreo, y se puede encontrar en el grupo de configuraciones.

 

¿Cómo creo un ROI rectangular a partir de un conjunto de puntos en LabWindows / CVI?


El tipo de datos de ROI no está definido explícitamente en LabWindows / CVI, pero puede acceder y modificar las ROI utilizando las llamadas de la función Vision.

Por ejemplo, el siguiente código muestra cómo establecer un ROI rectangular:

Rect rect = { 80, 10,  55,  340 };
ROI* roi = imaqCreateROI();
imaqSetWindowROI(Display, roi);


Puede encontrar una descripción completa de todas las funciones de Vision y sus propiedades y métodos en la NI Vision for Visual Basic Reference Help. Esto se instalará en su computadora de manera predeterminada si tiene instalado NI Vision. Puede encontrarlo en Inicio »Programas» National Instruments »Vision» Documentación »NI Vision. Abra el archivo llamado cwimaq.chm.

¿Cómo construir un ROI a partir de un contorno en LabWindows / CVI?


El tipo de datos de ROI no está definido explícitamente en LabWindows / CVI, pero puede acceder y modificar las ROI utilizando las llamadas de la función Vision (en inglés).

Por ejemplo, el siguiente código muestra cómo convertir un contorno en un ROI:

const int numPoints=3;
Point myArrayofPoints [3] = {MakePoint( 1,2),MakePoint( 3,4), MakePoint( 1,5)};
ROI* roi = imaqCreateROI();

imaqAddClosedContour( roi, myArrayofPoints , numPoints) ;


Puede encontrar una descripción completa de todas las funciones de Vision y sus propiedades y métodos en la NI Vision for Visual Basic Reference Help. Esto se instalará en su computadora de manera predeterminada si tiene instalado NI Vision. Puede encontrarlo en Inicio »Programas» National Instruments »Vision» Documentación »NI Vision.


¿Cómo funcionan las ROI con el reconocimiento óptico de caracteres (OCR)?

OCR se divide en dos secciones distintas: entrenamiento y lectura. Durante el procedimiento de entrenamiento, la ROI especifica la región en la que se encuentran los objetos que desea que la computadora aprenda. Durante la lectura, la ROI es la región en la que la computadora buscará los datos para leer. Puede manipular las ROI para aumentar efectivamente la precisión y la eficiencia del proceso de OCR. Durante el entrenamiento, puede utilizar la ROI para especificar cuidadosamente la región en la imagen que contiene los objetos que desea entrenar y excluye el ruido y los objetos extraños. Durante la lectura, puede utilizar la ROI para encerrar solo los objetos que desea leer, lo que reduce el tiempo de procesamiento y aumenta la precisión.

¿FUE ESTE ARTÍCULO DE AYUDA?

No