永发信息网

图像二值化的算法比较

答案:1  悬赏:50  手机版
解决时间 2021-03-17 01:44
图像二值化的算法比较
最佳答案

OTSU的中心思想是阈值T应使目标与背景两类的类间方差最大。
//用类间方差最大思想计算阈值
int Threshold(int *hist) //compute the threshold
{
float u0, u1;
float w0, w1;
int count0;
int t, maxT;
float devi, maxDevi = 0; //方差及最大方差
int i;
int sum = 0;
for (i = 0; i < 256; i++)
{
sum = sum + hist[i];
}
for (t = 0; t < 255; t++)
{
u0 = 0; count0 = 0;
//阈值为t时,c0组的均值及产生的概率
for (i = 0; i <= t; i++)
{
u0 += i * hist[i]; count0 += hist[i];
}
u0 = u0 / count0; w0 = (float)count0/sum;
//阈值为t时,c1组的均值及产生的概率
u1 = 0;
for (i = t + 1; i < 256; i++)
{
u1 += i * hist[i];
}
u1 = u1 / (sum - count0); w1 = 1 - w0;
//两类间方差
devi = w0 * w1 * (u1 - u0) * (u1 - u0);
//记录最大的方差及最佳位置
if (devi > maxDevi)
{
maxDevi = devi;
maxT = t;
}
}
return maxT;
}
//二值化处理
void OTSU(IplImage *src, IplImage *dst)
{
int i = 0, j = 0;
int wide = src->widthStep;
int high = src->height;
int hist[256] = {0};
int t;
unsigned char *p, *q;
for (j = 0; j < high; j ++)
{
p = (unsigned char *)(src->imageData + j * wide);
for (i = 0; i < wide; i++)
{
hist[p[i]]++; //统计直方图
}
}
t = Threshold(hist);
for (j = 0; j < high; j ++)
{
q = (unsigned char *)(dst->imageData + j * wide);
p = (unsigned char *)(src->imageData + j * wide);
for (i = 0; i < wide; i++)
{
q[i] = p[i] >= t ? 255 : 0;
}
}
}
OTSU算法对不均匀光照的图片不能产生很好的效果。 另外一个Kittler算法,是一种快速的全局阈值法。它的效果不比OTSU差多少,但速度快好多倍,如果可以应用在图像质量不错的环境。
它的中心思想是,计算整幅图像的梯度灰度的平均值,以此平均值做为阈值。
//kittler算法
for (i=1;i{
plineadd=src->imageData+i*wide;
pNextLine=src->imageData+(i+1)*wide;
pPreLine=src->imageData+(i-1)*wide;
for(j=1;j{
//求水平或垂直方向的最大梯度
Grads=MAX(abs((uchar)pPreLine[j]-(uchar)pNextLine[j]),abs((uchar)plineadd[j-1]-(uchar)plineadd[j+1])); //max(xGrads,yGrads)
sumGrads += Grads;
//梯度与当前点灰度的积
sumGrayGrads += Grads*((uchar)plineadd[j]);
}
}
threshold=sumGrayGrads/sumGrads;
// printf(%d
,threshold);
for(i=0;i{
plineadd=src->imageData+i*wide;
pTempLine=kittler->imageData+i*wide;
for(j=0;j{
pTempLine[j]=(uchar)plineadd[j]>threshold?255:0;
}
}


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
化学性质相似的有机物是同系物吗
前世亲姐弟!今生是什么?
白居易在《卖炭翁》写道:“可怜身上衣正单,
眼睛度数增加多少度需换眼镜?
小狗吃多少粮食?
秋季芒种鸭下蛋减少怎么回事
爱丽丝九号的成员介绍
康缘养生馆在哪里啊,我有事要去这个地方
yy交友甩雷模式怎么看不见题目
车间消防隔墙双面彩钢板合格吗
一幅画有人有钱有梨有鸡的是什么成语
有人猜有人猜 摸摸你的爱 是什么歌 忘记了求
ltisapen(改为一般疑问句)
从相门停到圆融天幕怎么走
男友名字带子寒 我名字带霄雨求配情侣网名 古
推荐资讯
cA247值高出正常值5倍,会什么后果
莎莎饰品地址在哪,我要去那里办事
什么是作文后记怎么写
偃师市洛阳格力(昆仑好客东)哪位知道具体地址
单选题下列关于生物组织中可溶性还原糖、脂肪
白毛蛇的作用
从城市土地管理的整体来说,应该包括哪些方面
游历的意思
用什么药水泡木头,使木头永远不长虫子?
江淮骏铃的五十铃,拉五吨的抛货怎么样
acad.lsp文件被删除了
钢铁价格谁定的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?