Red de conocimiento informático - Aprendizaje de código fuente - Novato pidiendo ayuda, matlab llama a la cámara

Novato pidiendo ayuda, matlab llama a la cámara

Puede buscar sobre la caja de herramientas de adquisición de imágenes de Matlab.

Así es como usé CCD. Encontré este párrafo en línea:

La caja de herramientas de adquisición de imágenes en Matlab nos proporciona las funciones necesarias y podemos llamarlas directamente. En esta publicación, presentamos principalmente brevemente cómo usar esta caja de herramientas para programar cámaras USB2.0

Sin más preámbulos, vayamos al grano. Pero asegúrese de recordar que debe tener instalada una cámara de PC antes de poder hacer lo siguiente. Si está instalando una cámara por primera vez, es mejor reiniciar la PC; de lo contrario, es posible que no se reconozca la cámara.

Necesitamos hacer las siguientes cosas durante todo el proceso:

1 Consultar los parámetros específicos de la cámara USB2.0 (imaqhwinfo)

2. objeto de entrada de video (videoinput)

3. Vista previa y visualización de la imagen (vista previa, vista previa de parada, vista previa de cierre e imagen)

4. Obtener imagen de video (obtiene instantánea)

5. Adquisición de imágenes Obtención y configuración del dispositivo (obtener y configurar)

6 Cerrar el objeto de video (eliminar)

Antes de la explicación formal, me gustaría explicar los siguientes elementos. en la caja de herramientas de adquisición de imágenes Terminología:

Dispositivo de adquisición de imágenes: como cámara, escáner

Adaptador de adquisición de imágenes: el objetivo principal es transferir información entre Matlab y el dispositivo de adquisición de imágenes a través del controlador

ROI: región de interés región de interés

Hablemos de varias funciones de uso común aquí solo explicamos sus funciones y específicamente cómo usar el sistema de ayuda de referencia

.

getelectedsource

imaqfind

es válido

peekdata

getdata

imaqmontage

Danos Debemos conocer los parámetros relevantes de una cámara antes de poder programarla. Por supuesto que podemos consultar el manual del comerciante, pero ¿eso es agotador?

La caja de herramientas de adquisición de imágenes de Matlab me proporciona imaqhwinfo() para obtener información de hardware de la imagen instalada en la PC.

Cuando no se ingresan parámetros, se devuelve una estructura que contiene información de la versión. relacionado con adaptadores y Matlab que existen en el sistema (generalmente usamos esto por primera vez)

Código:

gt; info=imaqhwinfo

info =

InstalledAdaptors: {'coreco' 'winvideo'}Aquí puedes ver dos adaptadores instalados en mi PC

MATLABVersion: '7.6 (R2008a)'

> Nombre de la caja de herramientas: 'Caja de herramientas de adquisición de imágenes'

Versión de la caja de herramientas: '3.1 (R2008a)'

Cuando hay parámetros de entrada, se devuelve una estructura que contiene la información de datos del adaptador especificado

Código:

gt; gt; win_info=imaqhwinfo('winvideo') Veamos los parámetros específicos del segundo adaptador

win_info =

AdaptorDllName: [1x81 char] Ruta absoluta del archivo dll del adaptador

AdaptorDllVersion: '3.1 (R2008a)' versión del archivo dll del adaptador

AdaptorName: 'nombre del adaptador de winvideo

DeviceIDs: {[1]} número de ID del dispositivo, a menudo necesitamos usar esto

DeviceInfo: [1x1 struct] información del dispositivo, aquí hay principalmente algunos parámetros del dispositivo de adquisición de imágenes, más importante

====================Descubramos más sobre la información detallada de este dispositivo de adquisición de imágenes====== ====== =========

gt;gt; win_info.DeviceIDs

ans =

[1]

gt ;gt; dev_win_info=win_info.DeviceInfo

dev_win_info =

DefaultFormat: 'RGB24_320x240' Obtiene el formato predeterminado de la imagen

DeviceFileSupported: 0

Nombre del dispositivo: nombre del dispositivo 'USB PC CAMERA P227'

ID del dispositivo: 1 número de dispositivo

ObjectConstructor: 'videoinput('winvideo', 1)' Método de construcción del objeto, la mayoría de son iguales

Formatos admitidos: la imagen obtenida por {1x12 cell} admite muchos formatos, y el formato predeterminado anterior es solo el formato predeterminado

= ======== =========================Mire los formatos de imagen admitidos por el dispositivo de adquisición de imágenes======== ===

=======================

gt;gt;dev_win_info.SupportedFormats Puedes ver que la cámara de mi PC admite los siguientes 12 Formato de imagen

ans =

Columnas 1 a 5

'I420_160x120' 'I420_176x144' 'I420_320x240' 'I420_352x288' 'I420_640x480'

Columnas 6 a 9

'RGB24_1280x960' 'RGB24_160x120' 'RGB24_176x144' 'RGB24_320x240'

Columnas 10 a 12

'RGB24_352x288' 'RGB24_640x480' ' 00x600 '

Vista previa, captura y guardado de vídeo

(1) Crear objeto de entrada de vídeo

obj = videoinput(nombre del adaptador, ID del dispositivo, formato)

adaptorname: nombre del adaptador, que se puede obtener utilizando la función imaqhwinfo sin parámetros por primera vez

deviceID: número de ID del dispositivo, que se puede obtener mediante la función imaqhwinfo por primera vez

formato: formato de captura de vídeo, que se puede obtener a través de SupportedFormats de DeviceInfo. Si no se completa, se utilizará el formato predeterminado

Código:

gt; obj = videoinput('winvideo', 1, 'RGB24_320x240') Aquí usamos el formato de captura de video predeterminado

Resumen del objeto de entrada de video usando 'USB PC CAMERA P227'.

Adquisición Fuente(s): la entrada1 está disponible.

Parámetros de adquisición: 'entrada1' es la fuente seleccionada actualmente.

10 cuadros por disparador usando la fuente seleccionada.

Los datos de vídeo 'RGB24_320x240' se registrarán al INICIO.

Tomando el primero de cada fotograma.

Registra los datos en la 'memoria' al activarse.

Parámetros de activación: 1 activación(es) 'inmediata(s) al INICIO.

p>

Estado: Esperando INICIO.

0 fotogramas adquiridos desde el inicio.

0 fotogramas disponibles para GETDATA.

(2) Abra la ventana de vista previa del vídeo

himage=preview(obj, himage)

p>

obj: objeto de colección de videos

himage: el identificador correspondiente a la ventana de vista previa del video, es decir, obtener una vista previa del video en el objeto de identificador especificado, este parámetro se puede dejar en blanco

En cuanto a La ventana de vista previa se puede cerrar y detener usando las funciones colsepreview y stoppreview

Código:

vidRes = get(obj, 'VideoResolution')

nBands = get( obj, 'NumberOfBands');

figure() especifica la figura que se muestra en la ventana de vista previa

axes() especifica la coordenada. sistema mostrado en la ventana de vista previa

hImage = image(zeros(vidRes(2), vidRes(1), nBands));

preview(obj, hImage

(3) Captura, visualización y almacenamiento de imágenes

p>

Código:

el marco es una matriz de H×W×B. H altura de la imagen, especificada por ROIPosition; w ancho de la imagen, especificada por ROIPosition; B número de líneas de cable, especificadas por NumberOfBands

frame = getsnapshot(obj);

imshow(frame) ;

imwrite(fama,'snap.jpg','jpg');