C#分割图像实例

前面说了VisionPro分割图像的方法,再讲一下C#分割图像的方法。微软在.net框架中提供了Image这个类,里面有一些操作图像的方法,C#分割图像就要用到里面的方法,代码比较简单,一看就会。

为了方便我还是用前面的图像,分割效果如下:

C#分割图像实例

C#分割图像实例

分割代码如下:

Dictionary<int, Image> imglist;private void button1_Click(object sender, EventArgs e){pictureBox1.Image = Image.FromFile(Application.StartupPath+"/111.png");imglist = new Dictionary<int, Image>();for (int i = 0; i < 4;i++ ) {imglist.Add(i+1, cutImage(pictureBox1.Image,new Point(0,i*100),pictureBox1.Image.Width,100));}}/// <summary>/// 截取图片区域,返回所截取的图片/// </summary>/// <param name="SrcImage"></param>/// <param name="pos"></param>/// <param name="cutWidth"></param>/// <param name="cutHeight"></param>/// <returns></returns>private Image cutImage(Image SrcImage, Point pos, int cutWidth, int cutHeight){Image cutedImage = null;//先初始化一个位图对象,来存储截取后的图像Bitmap bmpDest = new Bitmap(cutWidth, cutHeight, PixelFormat.Format32bppRgb);Graphics g = Graphics.FromImage(bmpDest);//矩形定义,将要在被截取的图像上要截取的图像区域的左顶点位置和截取的大小Rectangle rectSource = new Rectangle(pos.X, pos.Y, cutWidth, cutHeight);//矩形定义,将要把 截取的图像区域 绘制到初始化的位图的位置和大小//rectDest说明,将把截取的区域,从位图左顶点开始绘制,绘制截取的区域原来大小Rectangle rectDest = new Rectangle(0, 0, cutWidth, cutHeight);//第一个参数就是加载你要截取的图像对象,第二个和第三个参数及如上所说定义截取和绘制图像过程中的相关属性,第四个属性定义了属性值所使用的度量单位g.DrawImage(SrcImage, rectDest, rectSource, GraphicsUnit.Pixel);//在GUI上显示被截取的图像cutedImage = (Image)bmpDest;g.Dispose();return cutedImage;}

显示第几张图像:

pictureBox1.Image = imglist[1];

分割原理也是将你选择的区域给画到一张空白图像上,当然你可以一个像素一个像素的赋值,最后也会出现一样的结果。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/241329.html

(0)
上一篇 2022年4月7日
下一篇 2022年4月7日

相关推荐

发表回复

登录后才能评论