[置顶] 数字图像处理(1)-图片信息获取和RGB-HSI


数字图像处理 信息获取

struct Rgb

{
    unsigned char    b;
    unsigned char    g;
    unsigned char    r;
};
lpSrc=(unsigned char*)pDoc->m_pDib->m_lpImage +
          lLineBytes*(lHeight - 1 -point.y) + point.x*3;
Rgb rgb;

rgb.b=*lpSrc;

rgb.g=*(lpSrc+1);

rgb.r=*(lpSrc+2);


亮度

int gray=(int)(0.114*rgb.r+0.587*rgb.g+0.299*rgb.b)



RGB到HSI图片信息采集



编码如下

R = ((double) pRgb->r) / 255.0;
G = ((double) pRgb->g) / 255.0;
B = ((double) pRgb->b) / 255.0;

Sum = R + G + B;
pHsi->Intensity = Sum / 3.0;

MinValue = (R < G) ? R : G;
MinValue = (B < MinValue) ? B : MinValue;
MaxValue = (R > G) ? R : G;
MaxValue = (B > MaxValue) ? B : MaxValue;
if(pHsi->Intensity < 0.00001)
    pHsi->Saturation = ZERO_SATURATION;
else
    pHsi->Saturation = 1.0 - (3.0 * MinValue) / Sum;

if(MinValue == MaxValue){
    pHsi->Hue = UNDEFINED_HUE;
    pHsi->Saturation = ZERO_SATURATION;
    return;
    }

TempDouble1 = (((R - G) + (R - B)) / 2.0);
    TempDouble2 = (R - G) * (R - G) + (R - B) * (G - B);
    Quotient = (TempDouble1 / sqrt(TempDouble2));
    Radians = acos(Quotient);
    Angle = Radians * DEGREES_PER_RADIAN;
    pHsi->Hue =(B>G)? 360.0 – Angle : Angle;






    







你可能感兴趣的:(图像处理)