Home | Develop | Download | Contact
Namespaces
Funciones Pds::Ra – Color space

Funciones para trabajar con espacios de colores: Pds::Ra::RGB2HSL(), etc. Más...

Namespaces

namespace  Pds
 Nombre de espacio para Pds (Procesamiento Digital de Senales)
 
namespace  Pds::Ra
 Nombre de espacio para RA (Real Arrays)
 

Trabajar con colores

void Pds::Ra::RGB2HSL (unsigned char r, unsigned char g, unsigned char b, double &h, double &s, double &l)
 Transforma de coordenadas RGB a HSL Más...
 
bool Pds::Ra::RGB2HSL (const Pds::Matrix &R, const Pds::Matrix &G, const Pds::Matrix &B, Pds::Matrix &H, Pds::Matrix &S, Pds::Matrix &L)
 Transforma de coordenadas RGB a HSL Más...
 

Descripción detallada

Funciones para trabajar con espacios de colores: Pds::Ra::RGB2HSL(), etc.

#include <Pds/RaColor>

Documentación de las funciones

◆ RGB2HSL() [1/2]

void Pds::Ra::RGB2HSL ( unsigned char  r,
unsigned char  g,
unsigned char  b,
double &  h,
double &  s,
double &  l 
)

Transforma de coordenadas RGB a HSL

\[M=max(r,g,b)\]

\[m=min(r,g,b)\]

\[C=M-m\]

\[
h=
\left\{
\begin{array}{ll}
0&\mathbf{if}~C==0\\
60\left(\frac{g-b}{C}mod6\right)&\mathbf{if}~M==r\\
60\left(\frac{b-r}{C}+2\right)&\mathbf{if}~M==g\\
60\left(\frac{r-g}{C}+4\right)&\mathbf{if}~M==b\\
\end{array}
\right. ,
\]

\[
s=
\left\{
\begin{array}{ll}
\frac{1}{255}\frac{C}{1+|2\frac{l}{100}-1|}&\mathbf{if}~(l!=0)~\mathbf{and}~(l!=100)\\
0&\mathbf{else}
\end{array}
\right. ,
\]

\[
l=\frac{100}{255}\frac{M+m}{2}
\]


double r=128;g=170;b=100;
double h=0;s=0;l=0;

Pds::Ra::RGB2HSL(r,g,b,h,s,l);

std::cout<<"h:"<<h<<"s:"<<s<<"l:"<<l<<"\n";
Parámetros
[in]rRed [0,255].
[in]gGreen [0,255].
[in]bBlue [0,255].
[out]hHue [0,360].
[out]sSaturation [0,100].
[out]lLight [0,100].
Ejemplos
example_ra_color.cpp y example_ra_color2.cpp.

◆ RGB2HSL() [2/2]

bool Pds::Ra::RGB2HSL ( const Pds::Matrix R,
const Pds::Matrix G,
const Pds::Matrix B,
Pds::Matrix H,
Pds::Matrix S,
Pds::Matrix L 
)

Transforma de coordenadas RGB a HSL

\[M=max(r,g,b)\]

\[m=min(r,g,b)\]

\[C=M-m\]

\[
h=
\left\{
\begin{array}{ll}
0&\mathbf{if}~C==0\\
60\left(\frac{g-b}{C}mod6\right)&\mathbf{if}~M==r\\
60\left(\frac{b-r}{C}+2\right)&\mathbf{if}~M==g\\
60\left(\frac{r-g}{C}+4\right)&\mathbf{if}~M==b\\
\end{array}
\right. ,
\]

\[
s=
\left\{
\begin{array}{ll}
\frac{1}{255}\frac{C}{1+|2\frac{l}{100}-1|}&\mathbf{if}~(l!=0)~\mathbf{and}~(l!=100)\\
0&\mathbf{else}
\end{array}
\right. ,
\]

\[
l=\frac{100}{255}\frac{M+m}{2}
\]


std::vector<Pds::Matrix> IMG=Pds::Matrix::ImportBmpFile("some_path/image.bmp");
std::vector<Pds::Matrix> HSL;

Pds::Ra::RGB2HSL(IMG[0],IMG[1],IMG[2],HSL[0],HSL[1],HSL[2]);
Parámetros
[in]RRed [0,255].
[in]GGreen [0,255].
[in]BBlue [0,255].
[out]HHue [0,360].
[out]SSaturation [0,100].
[out]LLight [0,100].
Devuelve
Retorna true si todas las matrices tienen el mismo tamaño no vacio o false si no. En caso de error no modifica las matrices de salida.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed