Algunas notas misceláneas sobre el aprendizaje de opencv

1. Detalles del uso del sistema de coordenadas OpenCV + minMaxLoc

    1. La coordenada del punto cero en el sistema de coordenadas es la esquina superior izquierda de la imagen, el eje X es la línea horizontal sobre el rectángulo de la imagen, el eje Y es la línea vertical en el lado izquierdo del rectángulo de la imagen. Este sistema de coordenadas es aplicable en estructuras como Mat, Rect y Point. (Aunque algunas personas en Internet dicen que el origen de las coordenadas de algunas estructuras de datos en OpenCV está en la esquina inferior izquierda de la imagen, todavía no lo he encontrado).

2. Al usar image.at<TP>(x1, x2) para acceder al valor del punto en la imagen, x1 no es la coordenada del eje x del punto correspondiente en la imagen, sino la coordenada y del punto correspondiente. punto en la imagen. Por lo tanto, el resultado de su acceso es en realidad acceder al punto Point(x2, x1) en la imagen de la imagen, que tiene el mismo efecto que image.at<TP>(Point(x2, x1)).

   3. Si la imagen a dibujar es multicanal, por ejemplo, el número de canales de la imagen es n, entonces cuando se usa Mat::at(x, y), el rango de x sigue siendo 0 a la alto de la imagen, y el valor de y es El rango de valores es de 0 al ancho de la imagen multiplicado por n, porque hay n canales en este momento, por lo que cada píxel debe ocupar n columnas. Pero si usa Mat::at(point) para acceder en la misma situación, no necesita considerar la cantidad de canales en este momento, porque cuando desea asignar para obtener el valor de Mat::at(point ), ni un número, sino un vector n-dimensional correspondiente.

   4. Cuando se usa la función minMaxLoc() de una imagen multicanal, no se pueden dar sus coordenadas máximas y mínimas, porque cada píxel en realidad tiene múltiples coordenadas, por lo que no se darán. Por lo tanto, al programar, estas 2 posiciones deben ser NULL.


Supongo que te gusta

Origin blog.csdn.net/Kigha/article/details/51759026
Recomendado
Clasificación