c++ - una - diferencia entre profundidad de imagen y canales
resolucion y profundidad de color (5)
Estoy tratando de aprender opencv pero es muy confuso. ¿Alguien puede saber la diferencia entre imagedepth y el no. de canales en una imagen. Supongamos que la profundidad de la imagen es 8 y no. de los canales R, G, B es 3. Entonces, ¿qué significa? Tengo dificultades para visualizar la estructura 3d
La profundidad (o mejor profundidad de color) es la cantidad de bits utilizados para representar un valor de color. Realmente no me gusta OpenCV, pero una profundidad de color de 8 generalmente significa 8 bits por canal (para que tengas 256 valores de color, o mejor: tonos de gris (ver comentario), por canal, de 0 a 255) y 3 canales significa entonces que un valor de píxel se compone de 3 * 8 = 24 bits.
Sin embargo, esto también depende de la nomenclatura. Usualmente dirás
"La profundidad del color es de 8 bits por canal"
pero también podrías decir
"La profundidad de color de la imagen es de 32 bits"
y luego significa 8 bits por canal RGBA o
"La imagen tiene una profundidad de color de 24 bits"
y significa 8 bits por canales R, G y B.
Conclusión: la documentación (o redacción) tiene que ser bastante específica aquí ;-)
La profundidad de la imagen es la longitud del tipo de datos real utilizado para almacenar la imagen ( integer
, char
, float
). En su caso, parece ser char
o unsigned char
ya que la profundidad es de 8 bits.
Número de canales es una cantidad de números que describen un color del píxel en particular (por ejemplo, RGB - 3 canales).
La profundidad de la imagen significa el rango de valor que puede tener cada canal. Si tiene una profundidad de canal de, por ejemplo, 8 bits (char sin signo), un canal puede tener valores de 0 a 255. RGB significa 3 canales, uno para el valor R ed, uno para uno para el valor G reen y uno para el valor B valor.
Según la documentación de OpenCV , en OpenCV la profundidad se define como la profundidad de bits de un canal individual. Entonces, si tiene 8 bits de profundidad y 3 canales, significa que tiene 24 bits por píxel de imagen
Tómelo de esta manera.
Tienes una imagen que tiene solo un píxel. El TAMAÑO de la imagen es 1x1 píxeles.
- Si se trata de una imagen en escala de grises, solo se requiere un canal SIMPLE para representar la imagen. ¿Cómo? Debido a que una imagen gris (suponiendo una imagen de 8 bits) tendría 8 bits que es 2 elevado a la potencia 8, que es de 256 SHADES diferentes. De negro a blanco. Escala de grises
- La escala de grises es generalmente la imagen en blanco y negro.
- Ahora, si la misma imagen de píxel está hecha de colores, necesitamos tres canales, a saber, rojo, verde y azul o RGB. Cuando mezclamos los tonos de estos canales obtenemos diferentes colores.
- Me gusta, (255,255,255) es blanco puro en RGB y (0,0,0) es negro puro
- Entonces, cada canal tendrá tonos de 0 a 255 que son 8 bits.
- La imagen en color resultante tiene una profundidad de 8 bits y el número de canales es 3.
- Puede tener más de 8 bits por canal, esto aumenta los rangos de color (tonos)
- Para la imagen de 1x1 píxeles, los valores de color de los píxeles oscilarán entre 0 y 255 por canal. Eso es
[0 to 255 in R][0 to 255 in G][0 to 255 in B]