当前位置: 首页 > news >正文

【Qt+opencv】基础的图像绘制

文章目录

  • 前言
  • line函数
  • ellipse函数
  • rectangle函数
  • circle函数
  • fillPoly函数
  • putText函数
  • 总结


前言

在计算机视觉和图像处理领域,OpenCV是一个强大的库,提供了丰富的功能和算法。而Qt是一个跨平台的C++图形用户界面应用程序开发框架,它为开发者提供了创建现代化的桌面应用程序的所有必要功能。结合这两者,我们可以创建一个强大的图像处理应用程序。

本文将介绍如何使用Qt和OpenCV进行基础的图像绘制。我们将探讨如何在Qt应用程序中集成OpenCV库,以及如何使用OpenCV的函数在图像上进行基本的绘制操作。


line函数

  1. line: 该函数用于在图像上绘制一条线。
void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
  • img: 输入图像。
  • pt1pt2: 线段的两个端点。
  • color: 线段的颜色。
  • thickness: 线段的厚度。
  • lineType: 线段的类型。
  • shift: 坐标点的小数位数。

ellipse函数

  1. 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: 椭圆的旋转角度。
  • startAngleendAngle: 椭圆弧的起始角度和结束角度。
  • color: 椭圆的颜色。
  • thickness: 椭圆的厚度。
  • lineType: 椭圆的类型。
  • shift: 坐标点的小数位数。

rectangle函数

  1. rectangle: 该函数用于在图像上绘制一个矩形。
void rectangle(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
  • img: 输入图像。
  • pt1pt2: 矩形的两个顶点。
  • color: 矩形的颜色。
  • thickness: 矩形的厚度。
  • lineType: 矩形的类型。
  • shift: 坐标点的小数位数。

circle函数

  1. 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函数

  1. 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强大功能的冰山一角。通过进一步的学习和实践,你可以利用这两个工具来创建更复杂的图像处理和计算机视觉应用程序。希望本文能为你的学习之旅提供帮助。记住,实践是最好的老师,所以不断实践和尝试新的项目是提高技能的最好方式。祝你学习愉快!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【JAVA】深入理解Hutool中的Pair、Triple和Tuple:组合数据的新方式,方法返回多个值,嘎嘎香,谁用谁知道,比原生好用更强大
  • 关于Centos停更yum无法使用的解决方案
  • 可用内存为什么可以超过实际内存
  • C++写一个线程池
  • 阿里云CDN- https(设计支付宝春节开奖业务)
  • Linux——远程连接服务器
  • MySQL下载安装使用教程图文教程(超详细)
  • Gmsh教程
  • 关于dom4j主节点的xmlns无法写入的问题
  • 手机日历如何与Outlook同步
  • 基于PHP+MYSQL开发制作的趣味测试网站源码
  • openlayers请求地图瓦片超时的问题解决
  • SpringBoot 解决 getSession().getAttribute() 在负载均衡环境下无法获取session的问题
  • 【C++PythonJava】字符处理详细解读_字符_ASCLL码_字母数字转换_算法竞赛_开发语言
  • 智能家居和智能家电有什么区别?
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 345-反转字符串中的元音字母
  • hadoop集群管理系统搭建规划说明
  • Hibernate【inverse和cascade属性】知识要点
  • HomeBrew常规使用教程
  • JavaScript新鲜事·第5期
  • JavaWeb(学习笔记二)
  • JWT究竟是什么呢?
  • Node 版本管理
  • Python中eval与exec的使用及区别
  • - 转 Ext2.0 form使用实例
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​520就是要宠粉,你的心头书我买单
  • #{}和${}的区别?
  • (HAL库版)freeRTOS移植STMF103
  • (libusb) usb口自动刷新
  • (阿里云万网)-域名注册购买实名流程
  • (二十三)Flask之高频面试点
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (接口自动化)Python3操作MySQL数据库
  • (四)汇编语言——简单程序
  • (一)Linux+Windows下安装ffmpeg
  • (原)Matlab的svmtrain和svmclassify
  • (转载)OpenStack Hacker养成指南
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .gitattributes 文件
  • .NET 常见的偏门问题
  • .net(C#)中String.Format如何使用
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • 。。。。。
  • // an array of int
  • @Autowired 与@Resource的区别
  • @EnableWebSecurity 注解的用途及适用场景
  • @RequestMapping用法详解
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ C++ ] STL---仿函数与priority_queue