Flujo General del Proceso
El sistema automatizado para detección de impactos en blancos de tiro utiliza procesamiento digital de imágenes y visión computacional. Las etapas principales incluyen: filtración inicial, sustracción de imágenes, umbralización, eliminación de ruido, corrección geométrica, identificación de orificios y cálculo de puntuación.
Implementación de Etapas Clave
Filtración de Imágenes
Suaviza la imagen para reducir interferencias mediante filtro Gaussiano:
imgOriginal = imread('blanco.jpg');
imgFiltrada = imgaussfilt(imgOriginal, 1.8);
% Parámetro sigma controla intensidad de suavizado
Sustracción de Imágenes
Detecta cambios entre imágenes pre-post disparo:
imgDiferencia = imabsdiff(imgPosterior, imgPrevia);
% Áreas modificadas muestran valores altos de píxel
Umbralización
Convierte a imagen binaria para segmentación:
imgGris = rgb2gray(imgDiferencia);
nivelUmbral = graythresh(imgGris);
imgBinaria = imbinarize(imgGris, nivelUmbral);
Eliminación de Ruido
Remueve artefactos pequeños con operaciones morfológicas:
elemento = strel('square', 4);
imgLimpia = imopen(imgBinaria, elemento);
% Elimina objetos menores a 4 píxeles
Crorección Geométrica
Ajusta perspectiva del blanco mediante transformcaión proyectiva:
tform = fitgeotrans(puntosOrigen, puntosDestino, 'projective');
imgCorregida = imwarp(imgLimpia, tform);
Identificación de Impactos
Detecta regiones conectadas válidas:
[imgEtiquetada, numObjetos] = bwlabel(imgCorregida);
propiedades = regionprops(imgEtiquetada, 'Area', 'Centroid');
umbralArea = 15; % Filtra por tamaño mínimo
for k = 1:numObjetos
if propiedades(k).Area > umbralArea
coordenadas(k,:) = propiedades(k).Centroid;
end
end
Cálculo de Puntuación
Determina puntaje según distancia al centro:
centro = [x0, y0];
radios = [20,40,60,80]; % Radios de anillos concéntricos
puntajes = [10,9,8,7]; % Puntajes correspondientes
for m = 1:size(coordenadas,1)
dist = norm(coordenadas(m,:) - centro);
idx = find(dist <= radios, 1);
if ~isempty(idx)
resultado(m) = puntajes(idx);
end
end
Interfaz Gráfica de Usuario
La GUI desarrollada con App Designer permite cargar imágenes, ejecutar el procesameinto en cadena y visualizar resultados intermedios y finales. Incluye controles para ajustar parámetros y exportar datos.