用C++写opencv 识别框选红蓝板的代码
时间: 2023-04-07 11:05:08 浏览: 178
我可以回答这个问题。以下是使用C语言编写OpenCV识别框选红蓝板的代码示例:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图片
Mat image = imread("board.jpg");
// 转换为HSV颜色空间
Mat hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
// 定义红色和蓝色的HSV范围
Scalar lower_red(0, 100, 100);
Scalar upper_red(10, 255, 255);
Scalar lower_blue(110, 100, 100);
Scalar upper_blue(130, 255, 255);
// 创建掩膜
Mat red_mask, blue_mask;
inRange(hsv, lower_red, upper_red, red_mask);
inRange(hsv, lower_blue, upper_blue, blue_mask);
// 合并掩膜
Mat mask = red_mask + blue_mask;
// 检测轮廓
vector<vector<Point>> contours;
findContours(mask, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// 绘制矩形框
for (int i = 0; i < contours.size(); i++)
{
Rect rect = boundingRect(contours[i]);
rectangle(image, rect, Scalar(0, 255, 0), 2);
}
// 显示结果
imshow("Result", image);
waitKey(0);
return 0;
}
```
阅读全文