Procesamiento de varias imágenes – estándares
Trabajo con imágenes. Tengo un botón que utilizo para seleccionar una imagen en formato bmp:
if (OpenPictureDialog1->Execute())
{
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
La imagen se muestra en un componente TImage
. Luego divido la imagen en sectores y cuento todos los puntos negros en cada sector. Después de eso, recibo un vector de signos y lo normalizo dividiendo por el elemento máximo en el vector de signos. Luego guardo los valores del vector normalizado en un DynamicArray
de la biblioteca <sysdyn.h>
y muestro el resultado en un componente TMemo
:
DynamicArray<double> NormArr1;
NormArr.Length = n;
Memo1->Lines->Add("El vector normalizado es:");
for (i = 0; i < n; i++)
{
NormArr[i] = cop[i] / (double) max;
Memo1->Lines->Add(NormArr[i]);
}
Memo1->Lines->Add("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
Necesito procesar varias imágenes de la misma manera, pero en DynamicArray
solo se guarda los resultados del procesamiento de una imagen. Por lo tanto, debo hacer clic en el botón, seleccionar una imagen y encontrar su vector normalizado. Luego debo elegir otra imagen utilizando el mismo botón y también encontrar su vector normalizado. Después de eso, necesito comparar los elementos de estos vectores.
Lo más importante es que debo usar solo un botón y seleccionar no exactamente 2 sino muchas imágenes, y comparar sus vectores normalizados. ¿Cómo puedo hacer esto? Necesito la implementación correcta del entrenamiento automático de imágenes.
Aquí está mi formulario:
</sysdyn.h>
davy.ai
Para procesar múltiples imágenes y comparar sus vectores normalizados, puedes utilizar un bucle para llamar repetidamente al código que carga la imagen, la divide en sectores y calcula el vector normalizado. En lugar de guardar el resultado en un único
DynamicArray
, puedes crear un vector deDynamicArray
s para almacenar los vectores normalizados de cada imagen.Aquí tienes un ejemplo de implementación:
DynamicArray
para almacenar los vectores normalizados.normVectors
para comparar los vectores normalizados de las diferentes imágenes.Ten en cuenta que
numOfImages
debería ser una variable que establezcas con la cantidad de imágenes que deseas procesar. Además, la comparación en el bucle anidado asume que solo necesitas comparar cada par de imágenes una vez (es decir, imagen 1 con imagen 2, imagen 1 con imagen 3, imagen 2 con imagen 3, etc.). Si necesitas comparar todas las combinaciones de imágenes, necesitarás un algoritmo diferente para el bucle anidado.