c++ opencv inRange
时间: 2024-06-15 22:05:05 浏览: 15
C++ OpenCV中的inRange函数是用于在给定范围内对图像进行像素值的阈值化操作。它可以帮助我们提取图像中特定范围内的像素。
inRange函数的语法如下:
```cpp
void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst);
```
其中,src是输入图像,lowerb和upperb是指定的范围,dst是输出图像。
具体来说,inRange函数会将输入图像src中在lowerb和upperb范围内的像素设置为255(白色),而其他像素则设置为0(黑色)。这样就可以通过阈值化操作将感兴趣的像素提取出来。
以下是一个示例代码,演示了如何使用inRange函数提取图像中的红色区域:
```cpp
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat src = cv::imread("input.jpg");
if (src.empty())
{
std::cout << "Failed to read image!" << std::endl;
return -1;
}
cv::Mat hsv;
cv::cvtColor(src, hsv, cv::COLOR_BGR2HSV);
cv::Scalar lowerb(0, 100, 100);
cv::Scalar upperb(10, 255, 255);
cv::Mat mask;
cv::inRange(hsv, lowerb, upperb, mask);
cv::imshow("Input", src);
cv::imshow("Mask", mask);
cv::waitKey(0);
return 0;
}
```
在这个示例中,我们首先将输入图像从BGR颜色空间转换为HSV颜色空间,然后定义了一个范围,即红色的HSV值范围。最后,我们使用inRange函数将在这个范围内的像素提取出来,并显示在窗口中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)