opencv在图片上画框,画点,写字,画线

  • 1.头文件

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

  • 2.画框

// 图片,左上点,右下点,颜色
cv::rectangle(img, cv::Point2f(xmin, ymin), cv::Point2f(xmax, ymax), cv::Scalar(0, 0, 255));

  • 3.画圆

// 图片,圆心,半径,颜色,线的粗细(-1表示实心,可用于画点)
cv::circle(img,cv::Point(x,y), 3,Scalar(0,0,255),3);

  • 4.写字

// 图片,内容,左下角,字体,字大小,颜色
cv::putText(img, std::to_string(label), origin, cv::FONT_HERSHEY_COMPLEX_SMALL, 1, cv::Scalar(0, 0, 255));

  • 5.画线

// 图片,起点,终点,颜色,宽度
cv::line(img, Point(x1, y1), Point(x2, y2), Scalar(0, 0, 0), 3);

在QT中集成OpenCV并进行图像处理,你可以利用Qt的图形界面模块QGraphicsView和OpenCV的图像处理功能,比如cv::circle函数,在图片上绘制点。以下是一个简单的步骤说明: 1. **设置环境**: - 首先,你需要在项目中添加OpenCV库到QT的构建系统(如CMake或qmake)。 2. **加载图像**: 使用`cv::imread`函数从文件或内存中读取图片。 ```cpp cv::Mat img = cv::imread("path_to_your_image.jpg"); ``` 3. **创建QImage对象**: 将OpenCV的Mat转换成Qt QImage,因为Qt的图形渲染需要QImage。 ```cpp QImage qimg = QImage(img.data, img.cols, img.rows, QImage::Format_RGB888); ``` 4. **绘制点**: 使用QPainter在QImage上绘制一个圆点,然后将这个圆点复制回cv::Mat以便显示。 ```cpp QPainter painter(&qimg); painter.setPen(QColor(0, 0, 255)); // 设置颜色 int point_x = 10; // 点的x坐标 int point_y = 10; // 点的y坐标 painter.drawPoint(point_x, point_y); // 绘制点 // 如果你想在OpenCV Mat上显示,需要再次转换 cv::Mat output; cv::cvtColor(qimg.convertTo<cv::Mat>(cv::COLOR_RGB2BGR), output, cv::COLOR_BGR2RGB); cv::circle(output, cv::Point(point_x, point_y), 3, Scalar(0, 0, 255), -1); // 在cv::Mat上画点 ``` 5. **显示结果**: 可以直接在Qt窗口中显示QImage,或者将cv::Mat显示在OpenCV窗口,如imshow。 ```cpp QLabel *label = new QLabel; label->setPixmap(QPixmap::fromImage(qimg)); // 或者 cv::namedWindow("Output", cv::WINDOW_NORMAL); cv::imshow("Output", output); cv::waitKey(0); // 等待用户按键 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀么克瑟拉莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值