| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1713 人关注过本帖
标题:图像分割
只看楼主 加入收藏
hailingmm
Rank: 2
等 级:论坛游民
帖 子:96
专家分:15
注 册:2009-10-15
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:2 
图像分割
求助:谁有图像分割的算法,或者C#的源程序更好,帮帮忙!
搜索更多相关主题的帖子: 图像 
2009-10-23 10:50
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:10 
程序代码:
Bitmap   bb   =   (Bitmap)Image.FromFile("...");    
  Bitmap   sepbitmap1=   bb.Clone(new   System.Drawing.Rectangle(0,0,20,20),System.Drawing.Imaging.PixelFormat.Format32bppPArgb);    
   
 
 
Image   image   =   System.Drawing.Image.FromFile("a.jpg",true);    
  Bitmap   bmp   =   new   Bitmap(400,400);    
  Graphics   grap   =   Graphics.FromImage(bmp);    
  grap.Clear(Color.Transparent);    
  grap.DrawImage(image,new   Rectangle(0,0,400,400));    


     如果a.jpg的大小是4000*4000,这样在新的图像中得到的就是左上角起的400*400的一部份.    
  若要10*10,则用循环就可实现    
 
 
 
 
 
[System.Runtime.InteropServices.DllImportAttribute   (   "gdi32.dll"   )   ]    
  private   static   extern   bool   BitBlt   (    
  IntPtr   hdcDest   ,   //   目标   DC的句柄    
  int   nXDest   ,      
  int   nYDest   ,      
  int   nWidth   ,      
  int   nHeight   ,      
  IntPtr   hdcSrc   ,   //   源DC的句柄    
  int   nXSrc   ,      
  int   nYSrc   ,      
  System.Int32   dwRop   //   光栅的处理数值    
  )   ;    
     
  private   void   button1_Click(object   sender,   System.EventArgs   e)    
  {    
  try    
  {    
  string   file   =   null;    
  Bitmap   bmp   =   null;    
  IntPtr   dc1   =   IntPtr.Zero;    
  IntPtr   dc2   =   IntPtr.Zero;    
  int   row   =   2,   col   =   2;    
     
  int   left   =   0,   top   =0   ,   width   =   0,   height   =   0;    
  for(int   i=0;   i<row;   i++)    
  {    
  left   =   0;    
  top   =   i   *   ((int)(this.pictureBox1.Height   /   row));    
  for(int   j=0;   j<col;   j++)    
  {    
  file   =   @"c:\"+   i.ToString()   +   j.ToString()   +".bmp";    
  if   (j   ==   col-1)      
  width   =   this.pictureBox1.Width   -   ((int)(this.pictureBox1.Width   /   col))   *   j;    
  else    
  width   =   (int)(this.pictureBox1.Width   /   col);    
     
  if   (i   ==   row-1)      
  height   =   this.pictureBox1.Height   -   ((int)(this.pictureBox1.Height   /   row))   *   i;    
  else    
  height   =   (int)(this.pictureBox1.Height   /   row);    
     
                                                  Graphics   g1   =   this.pictureBox1.CreateGraphics();    
  bmp   =   new   Bitmap(width,   height,   g1);    
  Graphics   g2   =   Graphics.FromImage(bmp);    
  dc1   =   g1.GetHdc();    
  dc2   =   g2.GetHdc();    
     
     
  BitBlt   (dc2   ,   0   ,   0   ,   width   ,   height   ,   dc1   ,   left   ,   top   ,   13369376   )   ;    
  g1.ReleaseHdc(dc1)   ;    
  g2.ReleaseHdc(dc2)   ;    
  g1.Dispose();    
  g2.Dispose();    
  bmp.Save(file,   System.Drawing.Imaging.ImageFormat.Bmp);    
     
  left   +=   width;    
     
  }    
  }    
     
  }    
  catch(Exception   ex)    
  {    
  MessageBox.Show(ex.ToString());    
  }    
     
  } 

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-10-26 12:28
baikil
Rank: 10Rank: 10Rank: 10
来 自:X星球
等 级:青峰侠
威 望:4
帖 子:282
专家分:1580
注 册:2009-7-20
收藏
得分:10 
兄弟严重了吧.
只是要指定的区域的图像.
Bitmap bitmap=(Bitmap)Image.FromFile("...");

得到的区域
Bitmap myBitamp=bitmap.Clone(new Rectangle(0,0,100,100),bitmap.PixelFormat);
得到的new Rectangle(0,0,100,100)区域大小的图..

自创QQ群64885635,方便C#学习交流.希望各项工作路好学都好入!
2009-10-26 17:21
快速回复:图像分割
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045800 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved