opencv在图像上画点
时间: 2023-11-17 11:56:44 浏览: 422
可以使用OpenCV中的cv2.circle()函数来在图像上画点。该函数的参数包括图像、圆心坐标、半径、颜色和线宽等。下面是一个简单的例子:
```python
import cv2
import numpy as np
# 创建一个黑色的图像
img = np.zeros((512, 512, 3), np.uint8)
# 在图像上画一个红色的圆点
cv2.circle(img, (256, 256), 10, (0, 0, 255), -1)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
相关问题
opencv在图像上画点iplImage
要在图像上画点,可以使用OpenCV中的cvCircle函数。具体步骤如下:
1. 创建一个IplImage对象,用于存储图像数据。
2. 使用cvCircle函数在图像上画点。
3. 显示图像。
下面是一个简单的示例代码:
```
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 创建一个640x480的灰度图像
IplImage* img = cvCreateImage(cvSize(640, 480), IPL_DEPTH_8U, 1);
// 在图像上画一个半径为10的白色点
cvCircle(img, cvPoint(320, 240), 10, CV_RGB(255, 255, 255), -1);
// 显示图像
cvNamedWindow("Image");
cvShowImage("Image", img);
cvWaitKey(0);
// 释放内存
cvReleaseImage(&img);
return 0;
}
```
QT的opencv在图片上画点
在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); // 等待用户按键
```
阅读全文