• 大小: 4KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-08
  • 语言: C/C++
  • 标签: Otsu  双阈值  

资源简介

Otsu双阈值分割。将图像分为三层,在根据Middle与top的关系进行二值化

资源截图

代码片段和文件信息

void Otsu2Threshold(Mat& src Mat& dst)
{
Mat img = src;
//dst.create(src.size() src.type());
CV_Assert(1 == img.channels());

int height = img.rows;
int width  = img.cols;
int Threshold1 = 0;//阈值
int Threshold2 = 0;//阈值
double gSum_object;//第一类前景灰度总值
double gSum_middle;
double gSum_blackground;//第二类,背景灰度总值

double N_object = 0;//前景像素数
double N_middle = 0;
double N_blackground = 0;//背景像素数

double u0 = 0;//前景像素平均灰度
double u1 = 0;
double u2 = 0;//背景像素平均灰度
double w0 = 0;//前景像素点数占整幅图像的比例为ω0
double w1 = 0;
double w2 = 0;//背景像素点数占整幅图像的比例为ω1
double u = 0;//总平均灰度
double tempg = -1;//临时类间方差
double g = -1;//类间方差
double Histogram[256]={0};//灰度直方图
double N_allpixel = width * height;//总像素数
for(int k = 0; k < height; k++)
{
//计算直方图
uchar* d

评论

共有 条评论

相关资源