做網(wǎng)站v1認(rèn)證需要付費(fèi)嗎seo外包服務(wù)公司
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請?jiān)陲@著位置標(biāo)明本文出處以及作者網(wǎng)名,未經(jīng)作者允許不得用于商業(yè)目的。
灰度的算法主要有以下三種:
1、最大值法:
原圖像:顏色值color=(R,G,B)
求出R,G,B中最大的值:Y=Max(R,G,B)
新圖像:color=(Y,Y,Y)
2、平均值法: 使用每個(gè)像素點(diǎn)的 R,G,B值等于原像素點(diǎn)的RGB值的平均值;
原圖像:顏色值color=(R,G,B)
求出R,G,B的平均值:Y=(R+B+G)/3
新圖像:color=(Y,Y,Y)
3.、指數(shù)加權(quán)法:
原圖像:顏色值color=(R,G,B)
將R,G,B分別乘上一個(gè)權(quán)重值,通常為Y=R * 0.3 + G * 0.59 + B * 0.11
新圖像:color=(Y,Y,Y)
【例 17.33】灰度算法一:最大值法。
//灰度:最大值private void btnGray1_Click(object sender, EventArgs e){Color pSourceColor;Color pDestColor;Bitmap destImg = new Bitmap(sourceImg.Width, sourceImg.Height);int R, G, B;int gray;for (int i = 0; i < sourceImg.Width; i++){for (int j = 0; j < sourceImg.Height; j++){pSourceColor = sourceImg.GetPixel(i, j);R = pSourceColor.R;G = pSourceColor.G;B = pSourceColor.B;int MaxColor;MaxColor = R > G? R: G;MaxColor = MaxColor > B? MaxColor: B;pDestColor = Color.FromArgb(MaxColor, MaxColor, MaxColor);destImg.SetPixel(i, j, pDestColor);}}picDest.Image = destImg;}
運(yùn)行結(jié)果如下圖所示:
圖17-37 灰度處理一
【例 17.34】灰度算法二:平均值法。
//灰度:均值法private void btnGray2_Click(object sender, EventArgs e){Color pSourceColor;Color pDestColor;Bitmap destImg = new Bitmap(sourceImg.Width, sourceImg.Height);int R, G, B;int gray;for (int i = 0; i < sourceImg.Width; i++){for (int j = 0; j < sourceImg.Height; j++){pSourceColor = sourceImg.GetPixel(i, j);R = pSourceColor.R;G = pSourceColor.G;B = pSourceColor.B;gray = (R + G + B) / 3;pDestColor = Color.FromArgb(gray, gray, gray);destImg.SetPixel(i, j, pDestColor);}}picDest.Image = destImg;}
運(yùn)行結(jié)果如下圖所示:
圖17-38 灰度處理二
【例 17.35】灰度算法三:指數(shù)加權(quán)法。
//灰度:指數(shù)加權(quán)法private void btnGray3_Click(object sender, EventArgs e){Color pSourceColor;Color pDestColor;Bitmap destImg = new Bitmap(sourceImg.Width, sourceImg.Height);int R, G, B;int y;for (int i = 0; i < sourceImg.Width; i++){for (int j = 0; j < sourceImg.Height; j++){pSourceColor = sourceImg.GetPixel(i, j);R = pSourceColor.R;G = pSourceColor.G;B = pSourceColor.B;y =(int)( R * 0.3 + G * 0.59 + B * 0.11);pDestColor = Color.FromArgb(y, y, y);destImg.SetPixel(i, j, pDestColor);}}picDest.Image = destImg;}
運(yùn)行結(jié)果如下圖所示:
圖17-39 灰度處理三
學(xué)習(xí)更多vb.net知識,請參看vb.net 教程 目錄
學(xué)習(xí)更多C#知識,請參看?C# 教程 目錄