
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 = ws * ls;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;}}
}
本文发布于:2024-03-05 00:56:22,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1709616977120791.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |