阈值过滤的实例——OpenCV inRange
在图像处理中,阈值过滤是一个常见且实用的技术,它可以通过设置阈值来将像素分为两个部分:低于阈值的部分和高于阈值的部分。OpenCV提供了多种方式进行阈值过滤,其中inRange方法是一种常用的方式。
首先,我们需要明确一下inRange方法的基本用法。该方法可以传入三个参数,分别是原始图像、阈值范围的下限和上限。所谓阈值范围,就是指像素值必须落在这个范围内才会被保留下来。阈值范围通过cv::Scalar类型进行表示,其构造函数可以接收四个参数,分别是B、G、R和A通道的值。
下面是一个使用inRange方法进行阈值过滤的示例代码:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读入原始图像
Mat srcImage = imread("test.png");
// 定义阈值范围
Scalar lower(100, 100, 100, 0);
Scalar upper(200, 200, 200, 0);
// 进行阈值过滤
Mat resultImage;
inRange(srcImage, lower, upper, resultImage);
// 显示结果
imshow("result", resultIma