Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   Captura automática de cámara (https://www.clubdelphi.com/foros/showthread.php?t=96313)

Jose Roman 26-07-2023 05:06:12

Captura automática de cámara
 
Cordial saludo,

Trabajo con Delphi 11 y resulta que una App de una entidad financiera llamada AULA al momento de inscribirme me solicita mi DNI, este debo subirlo a una imagen, lo que me agrado es que hay un recuadro en la pantalla donde no puede pasarse de los marcos la imagen y esta toma la foto automáticamente cuando está bien enfocada y que no salga de este marco. La pregunta es, ¿Alguien sabe cómo hacer esto en Delphi?

Casimiro Notevi 26-07-2023 09:38:42

Hay algunos hilos (un par de ellos, que yo recuerde) sobre ese tema en algún lugar de los foros, he hecho una búsqueda y no doy con ninguno, pero sé que están.
Sé que no ayudo mucho, pero doy esperanza :)
Era un componente para toma de imágenes cámara o webcam que le podías indicar la zona de la pantalla que capturaba.

Neftali [Germán.Estévez] 26-07-2023 11:27:48

Yo creo que tal vez te podría servir OpenCV. Es un paquete de reconocimiento de imágenes.
Se ha hablado de él para "reconocimiento de caras", pero no sólo sirve para eso.

En tu caso la detección es de objetos y creo que debe ser mucho más sencilla para este componente.

Revisa esta entrada a ver si te sirve.

Delphi01 27-07-2023 00:48:07

Cita:

Empezado por Jose Roman (Mensaje 552160)
Cordial saludo,

Trabajo con Delphi 11 y resulta que una App de una entidad financiera llamada AULA al momento de inscribirme me solicita mi DNI, este debo subirlo a una imagen, lo que me agrado es que hay un recuadro en la pantalla donde no puede pasarse de los marcos la imagen y esta toma la foto automáticamente cuando está bien enfocada y que no salga de este marco. La pregunta es, ¿Alguien sabe cómo hacer esto en Delphi?

Para lograr el efecto de tomar una foto automáticamente cuando el DNI está bien enfocado y no sale del marco, se puede utilizar la biblioteca de procesamiento de imágenes de Delphi. Aquí hay algunos pasos generales que se pueden seguir:

1. Crea un formulario en Delphi que tenga un componente de cámara web y un componente de imagen.

2. Configura el componente de cámara web para que muestre la vista previa de la cámara en el formulario.

3. Crea un marco en el formulario que represente el área donde se debe enfocar el DNI.

4. Utiliza el componente de procesamiento de imágenes de Delphi para detectar si el DNI está dentro del marco y si está enfocado.

5. Si el DNI está dentro del marco y está enfocado, toma una foto utilizando el componente de cámara web y guárdala en un archivo.

Aquí hay un ejemplo de código que utiliza la biblioteca de procesamiento de imágenes de Delphi para detectar si un objeto está dentro de un marco:
Código:

uses
  Vcl.Imaging.jpeg, Vcl.Imaging.pngimage, Vcl.Graphics;

function IsObjectInFrame(const ObjRect, FrameRect: TRect): Boolean;
begin
  Result := (ObjRect.Left >= FrameRect.Left) and
            (ObjRect.Top >= FrameRect.Top) and
            (ObjRect.Right <= FrameRect.Right) and
            (ObjRect.Bottom <= FrameRect.Bottom);
end;

Este código toma dos parámetros: ObjRect, que representa el rectángulo que rodea al objeto que se está detectando, y FrameRect, que representa el rectángulo que rodea al marco donde se debe enfocar el objeto. La función devuelve True si el objeto está dentro del marco y False en caso contrario.
Para tomar la foto automáticamente cuando el DNI está bien enfocado y no sale del marco, se puede llamar a la función IsObjectInFrame en un bucle mientras se muestra la vista previa de la cámara web en el formulario. Cuando la función devuelve True, se puede tomar una foto utilizando el componente de cámara web y guardarla en un archivo.
Es importante tener en cuenta que la implementación exacta de este proceso dependerá del componente de cámara web y la biblioteca de procesamiento de imágenes que se utilice. Se recomienda consultar la documentación y los ejemplos de código proporcionados por los proveedores de estos componentes para obtener más información sobre cómo utilizarlos en Delphi.


La franja horaria es GMT +2. Ahora son las 21:23:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi