Estoy tratando de llegar a un sistema de puntuación para algunas investigaciones de psicología del comportamiento.Comparación de formas irregulares
Pido a las personas que dibujen una letra, luego tracen sobre ella, ambas en una tableta gráfica. Quiero evaluar la precisión de este rastro. Entonces, dibujas cualquier letra ('a'), luego lo haces de nuevo, luego la puntúo en función de lo similar que fue a la primera vez que la dibujaste. Los dibujos se almacenan como ubicaciones de píxeles.
La precisión se evalúa como la proximidad a la letra original. El método no necesita permitir cambios de escala, rotación o posición. Conceptualmente es como el área entre las dos líneas, solo las líneas son muy irregulares, por lo que las integrales (que yo sepa) no funcionarán.
Escribo en MATLAB, pero cualquier ayuda conceptual sería apreciada. Intenté sumar la distancia mínima entre todos los píxeles dibujados, pero esto da puntajes buenos (bajos) a puntos individuales bien ubicados.
Esto debe haberse hecho antes, pero no estoy teniendo suerte con mis búsquedas. Cualquier ayuda muy apreciada!
--- Solución parcial utilizando el método sugerido por @Bill a continuación. No funciona, ya que el gradiente de bwdist es demasiado empinado. En lugar de la bonita segunda imagen que Bill muestra, se parece más a la original.
%% Letter to image
im = zeros(1080,1920,3); % The screen (possible pixel locations)
% A small square a bit like the letter 'a', a couple of pixels wide.
pixthick = 5;
im(450:450+pixthick,[900:1100],:) = 1;
im(550:550+pixthick,[900:1100],:) = 1;
im([450:550],900:900+pixthick,:) = 1;
im([450:570],1100:1100+pixthick,:) = 1;
subplot(2,1,1); imagesc(im); %% atransbw = bwdist(im(:,:,1)<0.5); subplot(2,1,2);
imagesc(atransbw);
¿Cuál es el problema con el método que ya describió? (la suma de las distancias más cortas) – Ali
Un solo punto puede tener una puntuación muy alta, ya que solo hay un valor para encontrar la distancia más corta para. P.ej. Imagine un punto en el centro de un círculo: la suma de las distancias más cortas sería pequeña, lo que significa una buena puntuación, cuando en realidad es un rastro bastante malo. – dgmp88