opencv大津法阈值分割#include
#include
#include
#include
#include
#include
//#define Struct_size 11
//int flag_color;
int hei;
int wid;
void otsu(IplImage* A, IplImage* B)
{
long N = hei * wid;
int h[256];
double p[256],u[256],w[256];
for(int i = 0; i imageDat...
#include
#include
#include
#include
#include
#include
//#define Struct_size 11
//int flag_color;
int hei;
int wid;
void otsu(IplImage* A, IplImage* B)
{
long N = hei * wid;
int h[256];
double p[256],u[256],w[256];
for(int i = 0; i < 256; i++)
{
h[i] = 0;
p[i] = 0;
u[i] = 0;
w[i] = 0;
}
for(i = 0; i < hei; i++)
{
for(int j = 0; j < wid; j++)
{
for(int k = 0; k < 256; k++)
{
if(((uchar*)(A->imageData + A->widthStep*i))[j] == k)
{
h[k]++;
}
}
}
}
for(i = 0; i < 256; i++)
p[i] = h[i] / double(N);
int T = 0;
double uT,thegma2fang;
double thegma2fang_max = -10000;
for(int k = 0; k < 256; k++)
{
uT = 0;
for(i = 0; i <= k; i++)
{
u[k] += i*p[i];
w[k] += p[i];
}
for(i = 0; i < 256; i++)
uT += i*p[i];
thegma2fang = (uT*w[k] - u[k])*(uT*w[k] - u[k]) / (w[k]*(1-w[k]));
if(thegma2fang > thegma2fang_max)
{
thegma2fang_max = thegma2fang;
T = k;
}
}
for(i = 0; i < hei; i++)
{
for(int j = 0; j < wid; j++)
{
if(((uchar*)(A->imageData + A->widthStep*i))[j] > T)
((uchar*)(B->imageData + B->widthStep*i))[j] = 255;
else
((uchar*)(B->imageData + B->widthStep*i))[j] = 0;
}
}
}
int main(int argc, char** argv)
{
//const char* filename = argc >= 2 ? argv[1] : "pic1.png";
const char* filename = "green001.bmp";
/*
IplImage* InPut = cvCreateImage(cvSize(1600,1200), IPL_DEPTH_8U, 1);
InPut = cvLoadImage( filename, 0 );*/
IplImage* InPut = cvLoadImage( filename, 0 );
IplImage *OutPut = cvCreateImage(cvSize(InPut->width,InPut->height),IPL_DEPTH_8U,1);
hei = InPut->height;
wid = InPut->width;
otsu(InPut,OutPut);
cvNamedWindow( "Resource", 1 );
cvShowImage( "Resource", InPut );
cvNamedWindow( "Result", 1 );
cvShowImage( "Result", OutPut );
cvWaitKey(0);
return 0;
}
本文档为【opencv大津法阈值分割】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。