int Ostu(cv::Mat &temp,int &Threshvalue)
{
int hist_size=256;
int hist_height=256;
float range[]={0,255};
float *ranges[]={range};
IplImage *src=&IplImage(temp);
CvHistogram* gray_hist=cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1);
cvCalcHist(&src,gray_hist,0,0);
cvNormalizeHist(gray_hist,1.0);
int Width=src->width;
int Height=src->height;
double delta=0.0;
double U_t=0;
for(int i=0;i<256;i++)
{
U_t+=cvQueryHistValue_1D(gray_hist,i)*i;
}
double u=0,w=0;
for(int j=0;j<256;j++)
{
u+=cvQueryHistValue_1D(gray_hist,j)*j;
w+=cvQueryHistValue_1D(gray_hist,j);
double t=U_t*w-u;
double delta_tmp=t*t/(w*(1-w));
if(delta_tmp>delta)
{
delta=delta_tmp;
Threshvalue=j;
}
}
cvReleaseHist(&gray_hist);
return Threshvalue;
}
相关文章
- 02-10使用python-openCV对摄像头捕捉的镜头进行二值化并打上文字
- 02-10大津法进行图像二值化opencv
- 02-10opencv图像二值化操作
- 02-10python+openCV图像处理(十六)二值化阈值
- 02-10利用DCT进行jpg压缩;对图像进行二值化【matlab代码】
- 02-10图像二值化----otsu(最大类间方差法、大津算法)
- 02-10CUDA精进之路(五):图像处理——OTSU二值算法(最大类间方差法、大津法)
- 02-10CUDA精进之路(五):图像处理——OTSU二值算法(最大类间方差法、大津法)
- 02-10opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用
- 02-10Python+OpenCV图像处理(十)—— 图像二值化