opencv4C++开启摄像头识别黄色柱子并且画框然后输出中心坐标
时间: 2023-06-19 12:04:27 浏览: 64
以下是一个简单的代码示例,可以帮助你开启摄像头并使用 OpenCV 识别黄色柱子并绘制边界框并输出中心坐标。
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap(0);
if (!cap.isOpened()) {
cerr << "Error opening the camera" << endl;
return -1;
}
while (true) {
Mat frame;
cap.read(frame);
Mat hsv;
cvtColor(frame, hsv, COLOR_BGR2HSV);
// Define yellow color range
Scalar lower_yellow(20, 100, 100);
Scalar upper_yellow(30, 255, 255);
// Threshold the image to get only yellow pixels
Mat mask;
inRange(hsv, lower_yellow, upper_yellow, mask);
// Find contours of yellow objects
vector<vector<Point>> contours;
vector<Vec4i> hierarchy;
findContours(mask, contours, hierarchy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// Draw bounding boxes around yellow objects
for (size_t i = 0; i < contours.size(); i++) {
Rect bbox = boundingRect(contours[i]);
rectangle(frame, bbox, Scalar(0, 255, 0), 2);
Point center(bbox.x + bbox.width / 2, bbox.y + bbox.height / 2);
circle(frame, center, 3, Scalar(0, 0, 255), -1);
cout << "Center coordinate: (" << center.x << ", " << center.y << ")" << endl;
}
imshow("frame", frame);
if (waitKey(10) == 27) break;
}
return 0;
}
```
该示例使用 `VideoCapture` 打开摄像头。将每个帧转换为 HSV 颜色空间,并使用 `inRange` 函数将图像中的黄色像素转换为二进制图像。接下来,使用 `findContours` 函数找到黄色对象的轮廓,并使用 `boundingRect` 函数获取对象的边界框。最后,在对象的中心处绘制一个小圆圈,并输出中心坐标。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)