图像分割(阈值分割和区域生长)vc++代码(2)
时间:2025-04-09
时间:2025-04-09
{ if(data[i*width+j]>MaxP) {MaxP=data[i*step+j];} } printf("最大灰度值:%d\n",MaxP); //计算最大方差时的阈值t for(T=0;T<MaxP;T++) { w0=0,w1=0,u0=0,u1=0,u=0,q2=0,m=0,n=0; for(i=0;i<height;i++) { } w0=m/(width*height); w1=1-w0; u0/=m; u1/=n; u=w0*u0+w1*u1; q2=w0*w1*pow(u0-u1,2); if(q2>temp) for(j=0;j<width;j++) { } if(data[i*width+j]<T) {u0+=data[i*width+j];m++;} else {u1+=data[i*width+j];n++;} { t=T;temp=q2;} } printf("最佳阈值:%lf\n",t); for(i=0;i<height;i++) for(j=0;j<width;j++) { } if(data[i*width+j]<t) data[i*width+j]=0; else data[i*width+j]=255;
cvNamedWindow("win2", 1);
cvShowImage( "win2", pImg );//显示图像
cvWaitKey(0); cvDestroyWindow( "win1" );//销毁窗口