c++中如何在boundingRect的矩形器件的引脚进行标号
时间: 2023-06-25 08:03:03 浏览: 74
在C++中,可以使用OpenCV库中的rectangle和putText函数来在boundingRect的矩形器件的引脚上进行标号。
首先,使用boundingRect函数计算出每个矩形器件的位置和大小。
然后,使用rectangle函数在图像上绘制出矩形器件的边框。
最后,使用putText函数在矩形器件的中心位置上添加标号。
下面是一个示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读入图像
Mat img = imread("test.png");
// 转为灰度图像
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
// 二值化
Mat thresh;
threshold(gray, thresh, 128, 255, THRESH_BINARY);
// 查找轮廓
std::vector<std::vector<Point>> contours;
findContours(thresh, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// 遍历每个轮廓
for (int i = 0; i < contours.size(); i++)
{
// 计算矩形器件的位置和大小
Rect rect = boundingRect(contours[i]);
// 在图像上绘制矩形器件的边框
rectangle(img, rect, Scalar(0, 0, 255), 2);
// 添加标号
String label = std::to_string(i + 1);
Point center = Point(rect.x + rect.width / 2, rect.y + rect.height / 2);
putText(img, label, center, FONT_HERSHEY_SIMPLEX, 1, Scalar(0, 0, 255), 2);
}
// 显示图像
imshow("result", img);
waitKey();
return 0;
}
```
在这个示例代码中,我们首先读入一张图像,然后将其转为灰度图像并进行二值化处理。
接下来,使用findContours函数查找图像中的轮廓,并遍历每个轮廓。对于每个轮廓,我们计算出其boundingRect的矩形器件的位置和大小,并使用rectangle函数在图像上绘制出边框。
最后,我们使用putText函数在矩形器件的中心位置上添加标号。在这个示例代码中,我们使用了数字作为标号,通过将其转为字符串并使用std::to_string函数实现。同时,我们还指定了字体、大小、颜色等参数。
运行这个示例代码,就可以看到在boundingRect的矩形器件的引脚上进行标号的效果。
阅读全文