使用C++、opencv对图像进行简单的阈值分割
对图像进行颜色的阈值分割,往往不知道阈值设置为多少合适,需要不断测试,针对此问题,设置了阈值的滑动条,从而可以通过滑动滑动条快速找到阈值。
最常见的阈值分割即为R、G、B的阈值分割,即判断像素点的R、G、B值是否大于或小于某一阈值,满足条件的点就保留或删除。
本代码阈值分割的算法是直接按行按列依次遍历图像每个像素点,判断像素点的值是否满足分割条件,满足即将该点设置为黑色来达到分割的效果。代码为阈值、 R、G、B、和模式都设置了滑动条,其中模式有4种:
0----RGB R、G、B值大于阈值的点设为黑色
1----|G-R| G-R值的绝对值小于threshod_value的点设为黑色
2----|2G-R-B| 2G-R-B值的绝对值大于threshod_value的点设为黑色
3----G/R G/R值小于threshod_value的点设为黑色
创建滑动条的API:
int createTrackbar(const string& trackbarname, const string& winname, int* value, int count, TrackbarCallback onChange=0, void* userdata=0)

本文介绍了如何使用C++和OpenCV库对图像进行阈值分割,特别地,通过创建滑动条动态调整阈值,便于找到合适的分割条件。代码中提供了四种不同的分割模式,并展示了相应的结果图像。
最低0.47元/天 解锁文章
882

被折叠的 条评论
为什么被折叠?



