19,466
社区成员
发帖
与我相关
我的任务
分享
int hang = image.image_Height / blockSize ;
int lie = image.image_Width / blockSize;
for (i = 0;i < hang;i++)
{
for (j = 0 ;j < lie;j++)
{
float V= 0;
float M =0;
float tem = 0;
int ib= i*blockSize;
int jb = j*blockSize;
Vmax = 0;
Vmin = 25000;
//计算灰度均值
tem = 0;
for(m = 0;m < blockSize ;m++)
{
for(n = 0 ; n < blockSize ; n++)
{
tem += image.imageData[ib+m][jb+n];
}
}
M= tem / ww;
//计算方差
tem = 0;
for(m = 0;m < blockSize ;m++)
{
for(n = 0 ; n < blockSize ; n++)
{
float r = (M - image.imageData[ib+m][jb+n]) * (M - image.imageData[ib+m][jb+n]);
if (Vmax < r)
{
Vmax = r;
}
if (Vmin > r)
{
Vmin = r;
}
tem += r;
}
}
V = tem / ww;// 方差均值
T =float( 0.01*(Vmax - Vmin));
if (sqrt(V) < T)//为背景区域
{
for(m = 0;m < blockSize ;m++)
{
for(n = 0 ; n < blockSize ; n++)
{
image.imageData[ib+m][jb+n] = 254;
}
}
}
}//for lie
}//for hang