文章目录
- 前言
- line函数
- ellipse函数
- rectangle函数
- circle函数
- fillPoly函数
- putText函数
- 总结
前言
在计算机视觉和图像处理领域,OpenCV是一个强大的库,提供了丰富的功能和算法。而Qt是一个跨平台的C++图形用户界面应用程序开发框架,它为开发者提供了创建现代化的桌面应用程序的所有必要功能。结合这两者,我们可以创建一个强大的图像处理应用程序。
本文将介绍如何使用Qt和OpenCV进行基础的图像绘制。我们将探讨如何在Qt应用程序中集成OpenCV库,以及如何使用OpenCV的函数在图像上进行基本的绘制操作。
line函数
- line: 该函数用于在图像上绘制一条线。
void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
img: 输入图像。pt1和pt2: 线段的两个端点。color: 线段的颜色。thickness: 线段的厚度。lineType: 线段的类型。shift: 坐标点的小数位数。
ellipse函数
- ellipse: 该函数用于在图像上绘制一个椭圆。
void ellipse(Mat& img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
img: 输入图像。center: 椭圆中心的位置。axes: 椭圆的长轴和短轴。angle: 椭圆的旋转角度。startAngle和endAngle: 椭圆弧的起始角度和结束角度。color: 椭圆的颜色。thickness: 椭圆的厚度。lineType: 椭圆的类型。shift: 坐标点的小数位数。
rectangle函数
- rectangle: 该函数用于在图像上绘制一个矩形。
void rectangle(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
img: 输入图像。pt1和pt2: 矩形的两个顶点。color: 矩形的颜色。thickness: 矩形的厚度。lineType: 矩形的类型。shift: 坐标点的小数位数。
circle函数
- circle: 该函数用于在图像上绘制一个圆。
void circle(Mat& img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
img: 输入图像。center: 圆心的位置。radius: 圆的半径。color: 圆的颜色。thickness: 圆的厚度。lineType: 圆的类型。shift: 坐标点的小数位数。
fillPoly函数
- fillPoly: 该函数用于在图像上填充一个多边形。
void fillPoly(Mat& img, const Point** pts, const int* npts, int ncontours, const Scalar& color, int lineType=8, int shift=0, Point offset=Point() )
img: 输入图像。pts: 多边形的顶点。npts: 多边形的顶点数。ncontours: 要绘制的多边形数量。color: 多边形的颜色。lineType: 多边形的类型。shift: 坐标点的小数位数。offset: 所有点的偏移量。
putText函数
void putText(Mat& img, const String& text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=8, bool bottomLeftOrigin=false)
img: 输入图像,我们将在这个图像上绘制文本。text: 我们要绘制的字符串。org: 文本应开始的点。这个点是字符串左下角的点。fontFace: 字体类型。OpenCV提供了几种字体类型,如FONT_HERSHEY_SIMPLEX,FONT_HERSHEY_PLAIN等。fontScale: 字体比例因子。这个值决定了文本的大小。color: 文本的颜色。我们可以使用Scalar对象来定义BGR颜色。thickness: 线条的厚度。如果它是负数,那么文本将被填充。lineType: 线条的类型。bottomLeftOrigin: 这是一个布尔值。如果它是真的,那么图像数据的原点位于左下角。否则,它位于左上角。
总结
通过本文,我们了解了如何在Qt应用程序中集成OpenCV库,并使用其进行基础的图像绘制。这只是OpenCV和Qt强大功能的冰山一角。通过进一步的学习和实践,你可以利用这两个工具来创建更复杂的图像处理和计算机视觉应用程序。希望本文能为你的学习之旅提供帮助。记住,实践是最好的老师,所以不断实践和尝试新的项目是提高技能的最好方式。祝你学习愉快!