OpenCV实现halcon的dyn"/>
OpenCV实现halcon的dyn
enum ThresholdType
{THRESHOLD_LIGHT, //明THRESHOLD_DARK, //暗THRESHOLD_EQUAL, //等于THRESHOLD_NOT_EQUAL //不等于
};//功能:使用局部阈值分割图像
//参数:
// src:输入图像
// pre:包含本地阈值的图像(一般可使用均值滤波后的图像)
// dst:输出图像
// offset:灰度偏移量(-255 ≤ offset ≤ 255)
// type:
// THRESHOLD_LIGHT(明): g_src ≥ g_pre + offset
// THRESHOLD_DARK(暗): g_src ≤ g_pre - offset
// THRESHOLD_EQUAL(等于): g_pre - offset ≤ g_src ≤ g_pre + offset
// THRESHOLD_NOT_EQUAL(不等于): g_pre - offset > g_src || g_src > g_pre + offset
//返回值:无
void dyn_threshold(Mat src, Mat pre, Mat &dst, int offset, ThresholdType type)
{dst = Mat(src.size(), CV_8UC1, Scalar(0));int pixelsCount = src.rows * src.cols;for(int i = 0;i < pixelsCount; i++){int g_src = src.data[i];int g_pre = pre.data[i];if (type == THRESHOLD_LIGHT){if (g_src >= g_pre + offset)dst.data[i] = 255;}else if (type == THRESHOLD_DARK){if (g_src <= g_pre - offset)dst.data[i] = 255;}else if (type == THRESHOLD_EQUAL){if (g_src >= g_pre - offset && g_src <= g_pre + offset)dst.data[i] = 255;}else if (type == THRESHOLD_NOT_EQUAL){if (g_src < g_pre - offset || g_src > g_pre + offset)dst.data[i] = 255;}}
}
更多推荐
OpenCV实现halcon的dyn
发布评论