图象处理GDI+的问题:如何把一张图片变成两色,从而实现图片文字的识别,最好用C#实现,有个思路也可以,望高手来! 读取像素,和一个阀值比较,大于就是黑,小于就是白 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假设你的字颜色是红的。if (bmpNew != null) bmpNew.Dispose ();int iWidth, iHeight;//打开图的到宽高 Bitmap bmpTmp = (Bitmap)System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+ strFileNameMaze); iWidth = bmpTmp.Width;iHeight = bmpTmp.Height; //放到新图里。bmpNew = new Bitmap (bmpTmp.Width, bmpTmp.Height);Graphics g = Graphics.FromImage (bmpNew);g.DrawImage (bmpTmp, 0,0);//比红的小变成白,大变成黑Rectangle rc = new Rectangle (0,0,bmpNew.Width, bmpNew.Height);BitmapData d = bmpNew.LockBits (rc, ImageLockMode.ReadWrite, bmpNew.PixelFormat); unsafe { int iRow, iCol; int* p = (int*)d.Scan0; int numPixels = d.Width * d.Height; int[,] q = new int[d.Height,d.Width]; for(iRow=0;iRow<d.Height;iRow++) for(iCol=0;iCol<d.Width;iCol++) { if(((*p)&(0x00ffffff))<Color.Red.ToArgb()) *p = Color.White.ToArgb(); else if(((*p)&(0x00ffffff))>Color.Red.ToArgb()) *p = Color.Black.ToArgb(); p++; } } // 扫尾bmpNew.UnlockBits (d);bmpTmp.Dispose ();g.Dispose ();//存新图 bmpNew.Save(Request.PhysicalApplicationPath + strFileNameMazeNow,System.Drawing.Imaging.ImageFormat.Bmp); 想研究下ASP.NET制作的CMS,请教大虾们,忘赐教 c# 怎样使文本框只能填入数字和字母 怎么把多线程中的参数传出啊? 100分求c#winform+sqlserver类似于foxmail或outLook的邮件系统源代码,帮顶有分 sql 语句哪里错误了? 请教:链表与xml 有没有C#的加密代码,要加密数据到数据库里的,如base64Decode? 文本框有没有获得焦点时发生的事件啊? USC2编码怎么转换成中文 C#将dataset中的表写入数据库问题。求支招 如何设置系统时间,如果不调用win32 api 两个小问题!~
int iWidth, iHeight;//打开图的到宽高
Bitmap bmpTmp = (Bitmap)System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+ strFileNameMaze);
iWidth = bmpTmp.Width;
iHeight = bmpTmp.Height;
//放到新图里。
bmpNew = new Bitmap (bmpTmp.Width, bmpTmp.Height);
Graphics g = Graphics.FromImage (bmpNew);
g.DrawImage (bmpTmp, 0,0);//比红的小变成白,大变成黑
Rectangle rc = new Rectangle (0,0,bmpNew.Width, bmpNew.Height);
BitmapData d = bmpNew.LockBits (rc, ImageLockMode.ReadWrite, bmpNew.PixelFormat);
unsafe
{
int iRow, iCol;
int* p = (int*)d.Scan0;
int numPixels = d.Width * d.Height;
int[,] q = new int[d.Height,d.Width];
for(iRow=0;iRow<d.Height;iRow++)
for(iCol=0;iCol<d.Width;iCol++)
{
if(((*p)&(0x00ffffff))<Color.Red.ToArgb())
*p = Color.White.ToArgb();
else if(((*p)&(0x00ffffff))>Color.Red.ToArgb())
*p = Color.Black.ToArgb();
p++;
}
}
// 扫尾
bmpNew.UnlockBits (d);
bmpTmp.Dispose ();
g.Dispose ();//存新图
bmpNew.Save(Request.PhysicalApplicationPath + strFileNameMazeNow,System.Drawing.Imaging.ImageFormat.Bmp);