Você está na página 1de 2

chuyn nh mu v nh xm chng ta c cng thc sau: a.

O(x,y)=( IR(x,y) + IG(x,y) + IB(x,y)) /3 Vi: x,y l to ca im nh IR thnh phn mu ti mu I(x,y) IG thnh phn mu xanh l ti mu I(x,y) IB thnh phn mu xanh dng ti mu I(x,y) O(x,y): m u ra, I(x,y) mu u vo b. O(x,y)= IR(x,y) * 0.287 + IG(x,y) * 0.599 + IB(x,y) * 0.114 V d 1: S dng cng thc b cho v d 1 nh sau: Code: private Bitmap ToGray(Bitmap bm) { Bitmap bitmap = new Bitmap(bm); int x, y; Color c; Byte gray; for (y = 0; y < bm.Height - 1; y++) { for (x = 0; x < bm.Width - 1; x++) { c = bm.GetPixel(x, y); gray =Convert.ToByte(c.R * 0.287 + c.G * 0.599 + c.B * 0.114); bitmap.SetPixel(x, y, Color.FromArgb(gray, gray, gray)); } } return bitmap; } Kt qu th nghim nh sau: - i vi nh nh phn ta kim tra gi tr mu nu <128 th set li gi tr l 0 ngc li set gi tr l 255. Ta c cng thc sau: O(x,y)= 0 nu I(x,y) < C BeerO(x,y)= 255 ngc li Vi C l ngng (-1 < C < 256) cn phn ngng

V d 2: Code: private Bitmap ToBinary(Bitmap bm, Byte band) { Bitmap bitmap = new Bitmap(bm); int x, y; Color c; for (y = 0; y < bm.Height - 1; y++) { for (x = 0; x < bm.Width - 1; x++) { c = bm.GetPixel(x, y); if (c.R < band) bitmap.SetPixel(x, y, Color.FromArgb(0, 0, 0)); else bitmap.SetPixel(x, y, Color.FromArgb(255, 255, 255)); } } return bitmap; }

Você também pode gostar