彩色图像的灰度化处理

 彩色图像的灰度化处理
算法一::图片依然保持24位真彩色的形式,只是将一个像素点中R G B三个值分别化成新的灰度值


假设date指向原理的图像数据
gray指向新的图像的图像数据
(注意date和gray的起始位置是否是BITMAPINFOHEADER,否则需要跳过,
例如  BYTE *p=date+sizeof(BITMAPINFOHEADER)  );
其中的核心算法是:
grayvalue=(g*50+r*39+b*11)/100;


其中转换的步骤:
BYTE *p=date;
BYTE r=0,g=0,b=0,grayvalue=0;
int count=0;
for(int i=0;i<bitinfo.bmiHeader.biHeight;i++)
{
for(int j=0;j<bitinfo.bmiHeader.biWidth;j++)
{
//r=*(date++);g=*(date++);b=*(date++);//获取RGB的颜色值
count++;r=p[count];
count++;g=p[count];
count++;b=p[count];
            grayvalue=(g*50+r*39+b*11)/100;//获取新知
gray[count-3]=grayvalue; gray[count-2]=grayvalue; gray[count-1]=grayvalue;
}
}
算法二:
将24位的真彩色图像换成256位的灰度图片,这需要对调色板进行处理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章