彩色圖像的灰度化處理

 彩色圖像的灰度化處理
算法一::圖片依然保持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位的灰度圖片,這需要對調色板進行處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章