原创 C#与图像处理学习笔记(二)

2009-3-6 21:13 2941 9 9 分类: 软件与OS

彩色图像处理基础知识:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


彩色位图的像素颜色由三种基本颜色RGB有机组合而成,RGB称为三基色,每种基色可取0~255范围内的任意值,因此三种基色可组合成256*256*2561677万种颜色,每种颜色都有其对应的RGB值,常见的颜色机器对应的三原色值如表所示:


点击看大图 


彩色位图颜色的分解:


 


Color c = new Color();


c = b1.GetPixel(i, j);


rr = c.R;


gg = c.G;


bb = c.B;


 


重新生成新的颜色


 


Color c1=Color.FromArgb(rr, gg, bb);


b1.SetPixel(i, j, c1);


 


1B单色处理:


首先加入两个PictureBox控件pictureBox1pictureBox2,并且在pictureBox1中打开一幅图像,然后将处理后的图像显示在pictureBox2中,处理过程如下:


private void button1_Click(object sender, EventArgs e)


{


     int i,j,bb;


     Bitmap b1 = new Bitmap(pictureBox1.Image);


     Bitmap b2 = b1;


     Color cc = new Color();


     for (i = 0; i < b1.Width; i++)


     {


          for (j = 0; j < b1.Height; j++)


          { 


              cc = b1.GetPixel(i, j);


              bb = cc.B;


              Color c1 = Color.FromArgb(bb, bb, bb);


              b2.SetPixel(i, j, c1);


          }              


     }


     pictureBox2.Image = b2;          


}


2G单色处理


处理方法和上面的B单色处理相似,只是用得到颜色的G值重构新颜色即可,


gg = cc.B;


Color c1 = Color.FromArgb(gg, gg, gg);


3、 R单色处理


处理方法和上面的B单色处理相似,只是用得到颜色的R值重构新颜色即可,


rr = cc.B;


Color c1 = Color.FromArgb(rr, rr, rr);


4、 平均处理


处理方法和上面的类似,只是颜色重构的时候有点区别,


cc = b1.GetPixel(i, j);


rr = cc.R;


gg = cc.G;


bb = cc.B;


rgb = (int)((rr + gg + bb) / 3);        //rgb是一个int型的变量


if (rgb < 0)


    rgb = 0;


if (rgb > 255)


    rgb = 255;


Color c1=Color.FromArgb(rgb,rgb,rgb);


b2.SetPixel(i,j,c1);


 


用上面的程序分别对下面的图像进行处理,便可以清楚的体会图像的基本原理


dbb8d79d-028d-4887-9038-064a8b9c4b7a.jpg


颜色实验标准图像

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条