使用 OpenCV 的 inRange 函数进行颜色分割
使用 OpenCV 的 inRange 函数进行颜色分割
在图像处理领域,颜色分割是一个常见的任务,常用于识别和提取图像中的特定颜色区域。OpenCV 提供了一个非常方便的函数 inRange 来实现这一功能。在这篇博客中,我们将详细介绍 inRange 函数的用法,并通过示例代码演示如何使用它来分割图像中的颜色。
(图片来源网络,侵删)
inRange 函数介绍
inRange 是 OpenCV 库中的一个函数,用于检查图像像素值是否在指定的范围内,并生成一个二值图像。这个函数常用于颜色分割和阈值处理。
函数原型
void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst);
参数说明
- src: 输入图像。这个图像可以是单通道(灰度图像)或多通道(彩色图像)。函数将对该图像进行处理。
- lowerb: 低阈值或下界。与 src 图像具有相同的类型和通道数,用于指定每个通道的下限值。
- upperb: 高阈值或上界。与 src 图像具有相同的类型和通道数,用于指定每个通道的上限值。
- dst: 输出图像。这个图像是一个单通道的二值图像,尺寸和 src 相同。像素值为 255(满足条件)或 0(不满足条件)。
函数描述
inRange 函数通过检查 src 图像的每个像素值是否在 lowerb 和 upperb 范围内,如果在范围内,则将对应位置的像素值设置为 255,否则设置为 0。结果保存在 dst 图像中。
示例代码
假设你有一个彩色图像 src,你想找到图像中绿色的部分,可以使用以下代码:
#include int main() { // 读取输入图像 cv::Mat src = cv::imread("path_to_image.jpg"); if (src.empty()) { std::cout
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。