跨届大侠
- 积分
- 6167
- 威望
- 3955
- 贡献
- 1878
- 兑换币
- 597
- 注册时间
- 2014-5-20
- 在线时间
- 167 小时
- 毕业学校
- 西北民族大学
|
用过大津法求取阈值,准备二值化,后来发现赛场光线不均匀也就放弃了。- //调用接口threshold=OTSU_threshold((uint8 *)pixel,128);
- #define Gourd 256
- uint8 OTSU_threshold(uint8 *pic,uint16 num)
- {
- uint16 i=0;
- uint16 Histogram[Gourd];
- for (i=0;i<Gourd;i++)Histogram[i]=0;//数组清零
- for (i=0;i<num;i++)
- {
- Histogram[(int)pic[i]*Gourd/256]++;
- }
- float pt[Gourd],w[Gourd],u[Gourd],o[Gourd],Ut;
- pt[0]=(float)Histogram[0]/num;
- w[0]=pt[0];
- u[0]=w[0];
- for(i=1;i<Gourd;i++)
- {
- pt[i]=(float)Histogram[i]/num;
- w[i]=w[i-1]+pt[i];
- u[i]=u[i-1]+i*pt[i];
- };
- Ut=u[Gourd-1];
- for(i=0;i<Gourd;i++)
- {
- o[i]=(1-pt[i])*(u[i]*u[i]/w[i]+(u[i]-Ut)*(u[i]-Ut)/(1-w[i]));
- };
- int maxi=0;
- float maxo=0;
- for(i=0;i<Gourd;i++)
- {
- if(o[i]!=0x7FC0000)
- if(o[i]>maxo){maxo=o[i];maxi=i;}
- }
- return maxi*256/Gourd;
- }
复制代码 |
|