二值化matlab中的程序q=sum(sum(fg))/255*width*height;这句是二值化吗,怎 么理解啊?

二值化  时间:2021-08-09  阅读:()

如何用C语言实现对图像的二值化?(注意是C语言不是VC)

我以前搞过图像处理,其实,在数字图像处理中,二值化是最简单的。

所谓的二值化一般就是指 将真彩色或者灰度图转化为黑白两色,一般说来是处理灰度图。

兄弟,我觉得你完全可以自己编写程序进行二值化,因为真的不难,我记得我那时主要处理灰度图,灰度图像素是从0~255的,假设120是分解,你可以将灰度值小于120的像素的灰度值置为0,将灰度值大于120的像素的灰度值置为1,这样整个图像就成了黑白两色了。

二值化的难点不是编程,而是找阈值,120就是阈值 另外,“用C语言实现对图像的二值化”是我觉得有些奇怪,C语言只是语法,它不是编程工具,你必须用vc或者bcb等工具编程才行

自动确定图像二值化最佳阈值的方法

  阈值将原图象分成前景,背景两个图象。

  前景:用n1, csum, m1来表示在当前阈值下的前景的点数,质量矩,平均灰度   后景:用n2, sum-csum, m2来表示在当前阈值下的背景的点数,质量矩,平均灰度   当取最佳阈值时,背景应该与前景差别最大,关键在于如何选择衡量差别的标准   而在otsu算法中这个衡量差别的标准就是最大类间方差(英文简称otsu,这也就是这个算法名字的来源)   在本程序中类间方差用sb表示,最大类间方差用fmax   关于最大类间方差法(otsu)的性能:   类间方差法对噪音和目标大小十分敏感,它仅对类间方差为单峰的图像产生较好的分割效果。

  当目标与背景的大小比例悬殊时,类间方差准则函数可能呈现双峰或多峰,此时效果不好,但是类间方差法是用时最少的。

  最大最大类间方差法(otsu)的公式推导:   记t为前景与背景的分割阈值,前景点数占图像比例为w0, 平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1。

  则图像的总平均灰度为:u=w0*u0+w1*u1。

  前景和背景图象的方差:g=w0*(u0-u)*(u0-u)+w1*(u1-u)*(u1-u)=w0*w1*(u0-u1)*(u0-u1),此公式为方差公式,可参照概率论课本   上面的g的公式也就是下面程序中的sb的表达式   当方差g最大时,可以认为此时前景和背景差异最大,也就是此时的灰度是最佳阈值   unsafe public int GetThreshValue(Bitmap image)   {   BitmapData bd = image.LockBits(new Rectangle(0, 0, image.Width, image.Height), ImageLockMode.WriteOnly, image.PixelFormat);   byte* pt = (byte*)bd.Scan0;   int[] pixelNum = new int[256]; //图象直方图,共256个点   byte color;   byte* pline;   int n, n1, n2;   int total; //total为总和,累计值   double m1, m2, sum, csum, fmax, sb; //sb为类间方差,fmax存储最大方差值   int k, t, q;   int threshValue = 1; // 阈值   int step = 1;   switch (image.PixelFormat)   {   case PixelFormat.Format24bppRgb:   step = 3;   break;   case PixelFormat.Format32bppArgb:   step = 4;   break;   case PixelFormat.Format8bppIndexed:   step = 1;   break;   }   //生成直方图   for (int i = 0; i < image.Height; i++)   {   pline = pt + i * bd.Stride;   for (int j = 0; j < image.Width; j++)   {   color = *(pline + j * step); //返回各个点的颜色,以RGB表示   pixelNum[color]++; //相应的直方图加1   }   }   //直方图平滑化   for (k = 0; k <= 255; k++)   {   total = 0;   for (t = -2; t <= 2; t++) //与附近2个灰度做平滑化,t值应取较小的值   {   q = k + t;   if (q < 0) //越界处理   q = 0;   if (q > 255)   q = 255;   total = total + pixelNum[q]; //total为总和,累计值   }   pixelNum[k] = (int)((float)total / 5.0 + 0.5); //平滑化,左边2个+中间1个+右边2个灰度,共5个,所以总和除以5,后面加0.5是用修正值   }   //求阈值   sum = csum = 0.0;   n = 0;   //计算总的图象的点数和质量矩,为后面的计算做准备   for (k = 0; k <= 255; k++)   {   sum += (double)k * (double)pixelNum[k]; //x*f(x)质量矩,也就是每个灰度的值乘以其点数(归一化后为概率),sum为其总和   n += pixelNum[k]; //n为图象总的点数,归一化后就是累积概率   }   fmax = -1.0; //类间方差sb不可能为负,所以fmax初始值为-1不影响计算的进行   n1 = 0;   for (k = 0; k < 255; k++) //对每个灰度(从0到255)计算一次分割后的类间方差sb   {   n1 += pixelNum[k]; //n1为在当前阈值遍前景图象的点数   if (n1 == 0) { continue; } //没有分出前景后景   n2 = n - n1; //n2为背景图象的点数   if (n2 == 0) { break; } //n2为0表示全部都是后景图象,与n1=0情况类似,之后的遍历不可能使前景点数增加,所以此时可以退出循环   csum += (double)k * pixelNum[k]; //前景的“灰度的值*其点数”的总和   m1 = csum / n1; //m1为前景的平均灰度   m2 = (sum - csum) / n2; //m2为背景的平均灰度   sb = (double)n1 * (double)n2 * (m1 - m2) * (m1 - m2); //sb为类间方差   if (sb > fmax) //如果算出的类间方差大于前一次算出的类间方差   {   fmax = sb; //fmax始终为最大类间方差(otsu)   threshValue = k; //取最大类间方差时对应的灰度的k就是最佳阈值   }   }   image.UnlockBits(bd);   image.Dispose();   return threshValue;   }

matlab中的程序q=sum(sum(fg))/255*width*height;这句是二值化吗,怎 么理解啊?

和二值化无关。

这个写法可能是有问题的。

这两天刚好回答了和你问的这个有关的问题,详细的说明请参考: /z/q739178138.htm?oldq=1 /question/556465192?&oldq=1

优林云(53元)哈尔滨电信2核2G

优林怎么样?优林好不好?优林 是一家国人VPS主机商,成立于2016年,主营国内外服务器产品。云服务器基于hyper-v和kvm虚拟架构,国内速度还不错。今天优林给我们带来促销的是国内东北地区哈尔滨云服务器!全部是独享带宽!首月5折 续费5折续费!地区CPU内存硬盘带宽价格购买哈尔滨电信2核2G50G1M53元直达链接哈尔滨电信4核4G50G1M83元直达链接哈尔滨电信8核8G50G1M131元直...

HostWebis:美国/法国便宜服务器,100Mbps不限流量,高配置大硬盘,$44/月起

hostwebis怎么样?hostwebis昨天在webhosting发布了几款美国高配置大硬盘机器,但报价需要联系客服。看了下该商家的其它产品,发现几款美国服务器、法国服务器还比较实惠,100Mbps不限流量,高配置大硬盘,$44/月起,有兴趣的可以关注一下。HostWebis是一家国外主机品牌,官网宣称1998年就成立了,根据目标市场的不同,以不同品牌名称提供网络托管服务。2003年,通过与W...

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

二值化为你推荐
aftereffectaftereffect和premiere这两种后期软件有什么区别对于熟悉PS的人那个更容易学习exe文件打不开我的电脑里面的EXE文件打不开啦电视蚂蚁电视蚂蚁是不是不能用了?我在国外该怎样看奥运?cs躲猫猫CS1.6捉迷藏具体的玩法?diskgenius免费版DiskGenius恢复文件是免费的吗电子听诊器听诊器的原理jspushjavascript数组 如果一直只做push 那么数组的index为-1的地方是什么值vrrp配置我准备做一个关于MSTP的配置,但是不知道如何去做,拓扑如下邮件服务器软件Windows邮件服务器软件那个好好用的手机杀毒软件好用的手机杀毒软件
申请域名 北京vps主机 域名抢注工具 132邮箱 plesk 赵容 siteground 韩国空间 typecho 租空间 html空间 绍兴高防 免费网站申请 40g硬盘 免费吧 域名和空间 hkt 东莞服务器 cloudlink 1美元 更多