上位机图像处理和嵌入式模块部署(qmacvisual畸变矫正)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        大部分同学在开始做计算机图像的时候,是没有意识到畸变矫正这个问题的。当然不仅仅是畸变矫正,很多同学还会忽略光源的问题。他们自然地以为,摄像头拍出来的图像就应该是这样的。但事实上并非如此,好的图像需要光源的配合,而且很多摄像头拍摄出来的图像也是不能直接使用的,比如大家在汽车上面看到的鱼眼镜头,这些图像都是不能直接使用的,需要用标定板进行标定之后才能使用的。

        正好qmacvisual软件提供了软件标定的功能,我们也来学习一下。

1、标定需要做哪些

        要做好摄像头的标定,那么就需要一个标定板。在摄像头之前的各个角落和只能够中间,依次放置,这样就拿到了基本的标定图片。基于这些图片就可以对camera进行标定了。当然,这个标定板上面一般都会有棋盘格信息或者是有斑点的图案,这些都是已知的条件。并且,这些标定板上面的图案都是横平竖直的。这就意味着,如果图像上的棋盘格或者是斑点被识别之后,但是中间的连线发生了明显的弯曲,这就是说,我们可以用标定板对camera进行标定处理了。

2、标定板长什么样

        标定板一般是棋盘格,或者是斑点,今天用到的图片都是基于斑点的,

3、利用qmacvisual对图像进行标定处理

        本身qmacvisual软件已经支持对camera进行标定处理。获得标定参数之后,后续使用的每个图片,都可以先畸变矫正,然后再进行后续算法的处理。当然,标定之前,需要先创建一个工程,然后创建一个流程,这都是少不了的。接着开始标定,标定的插件位于树形控件里面的【标定工具】-》【畸变标定】。双击之后,界面应该是这样的,

        这里面有一些参数需要设置。文件夹路径就是采集的标定图片。剩下来的就是圆最小面积和圆最大面积设定。这两个参数设置非常重要,可以搭配Block参数按钮一起使用,确保算法可以认识到图片中的49个黑点。最后就是配置标定结果文件的保存路径位置。全部设置后,应该是这样的,

        这个时候如果不是很放心,可以依次单击Blob参数按钮,确保算法识别所有的黑点信息,相关输出可以在另外一个tab里面看到。不出意外的话,单击一次,你可以看到这样的效果,

        输出信息提示我们找到了49个黑点,并且每个黑点还标注了颜色。如果所有的图片都没有问题,直接单击执行按钮,就可以开始标定的过程了。标定结束了,相关的标定文件就写好了。截图是这样的,

        在tab2的输出显示当中,可以看到更多的信息,效果如下图所示。当然最重要的还是par_calib.xml文件。

        另外一个图像校正的按钮,则可以让我们一张一张地去看图像校正的效果,比如这一张,

        相比较原来的图片,有一个明显的地方,算法做了矫正。比如左上角的时间信息,之前肯定不是这个样子的,也说明标定确实起了效果。在现实生活中,标定的方法很多。用matlab工具来进行图像标定也是不错的一个选择。

4、如何使用标定文件

        有了标定文件,后续读取图片的时候,如何利用这些标定的参数对图像进行标定呢?其实相关的设置一直都在,只是我们自己没有去进行配置而已。大家打开获取图像的tab2页面,选择刚才生成的par_calib.xml文件就可以了,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/466551.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入了解 Spring boot的事务管理机制:掌握 Spring 事务的几种传播行为、隔离级别和回滚机制,理解 AOP 在事务管理中的应用

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…

深圳女游客山顶拍照不慎跌落,幸得及时救助无大碍。

深圳排牙山近日发生了一起惊险的意外事件。一名女游客在龟仙石打卡拍照时,因手滑不慎从石头上跌落,幸运的是,周围的游客迅速反应,合力接住了她,避免了更严重的后果。 据了解,这位女游客在攀爬龟仙石时&…

Dagger2相关知识

目录 一、Dagger简介1.1 什么是Dagger?1.2 Dagger用来干什么?1.3 使用Dagger2注入对象1.4 Dagger注解 二、Dagger2使用2.1 非单例2.2 局部单例2.3 全局单例 三、参考链接 一、Dagger简介 1.1 什么是Dagger? Dagger 2 是一个由 Google 开发的依赖注入框架&#x…

HTML + CSS 核心知识点- 定位

简述: 补充固定定位也会脱离文档流、不会占据原先位置 1、什么是文档流 文档流是指HTML文档中元素排列的规律和顺序。在网页中,元素按照其在HTML文档中出现的顺序依次排列,这种排列方式被称为文档流。文档流决定了元素在页面上的位置和互相之…

【图论】树链剖分

本篇博客参考: 【洛谷日报#17】树链剖分详解Oi Wiki 树链剖分 文章目录 基本概念代码实现常见应用路径维护:求树上两点路径权值和路径维护:改变两点最短路径上的所有点的权值求最近公共祖先 基本概念 首先,树链剖分是什么呢&…

centos7.9的GUI桌面样式不符合默认熟悉的操作习惯

一、问题描述: 原因:桌面样式选错了。 二、解决: 1.先登进去LogOut。 2.点击设置的工具图标中的GNOME Classic即可恢复成默认操作习惯的桌面样式。 3.恢复到默认熟悉的操作界面

基于有限状态机开发健壮的Nodejs/TCP客户端

有限状态机是一种数学计算模型,它描述了在任何给定时间只能处于一种状态的系统的行为。形式上,有限状态机有五个部分: 初始状态值 (initial state)有限的一组状态 (states)有限的一组事件 (events)由事件驱动的一组状态转移关系 (transition…

浏览器如何查看http请求的报文?

HTTP协议用于从WWW服务器传输超文本到本地浏览器的传送协议。 它可以使浏览器更加高效,使网络传输减少。 它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示 (如文本先于图形)等。所以在node.js里…

viple拓展题

数数问题 题目:使用viple来实现程序,使得运行结果能将数字逐个数出即可 思路:首先,数数字,不知道用户具体要求数到多少结束,所以,可以采用简单的对话活动来实现与用户的交互。其次,…

Linux系统安装1Panel管理面板并实现无公网IP远程管理本地服务器

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、…

string类型的使用以及编码方式

Redis 中所有的键的类型都是字符串类型,⼀个字符串的最⼤值不能超过 512 MB。 由于 Redis 内部存储字符串完全是按照⼆进制流的形式保存的,所以 Redis 是不处理字符集编码问题的,客⼾端传⼊的命令中使⽤的是什么字符集编码,就存储…

放在你后口袋里的七种基本质量工具

以下是我反复看到的七种质量改进工具。这些质量工具中的大多数已经存在了一段时间,但这肯定不会降低它们的价值! 这些工具最大的优点是使用非常简单,并且可以在中快速使用Minitab统计软件或者从事,但你当然可以使用其他方法&…

【已解决】MySQL:常用的除法运算+精度处理+除数为0处理

目录 问题现象: 问题分析: 拓展: 1、除法运算: 拓展:MySQL中常用的几种除法运算 1、取整除法 2、浮点数除法 3、取余除法 4、向上取整除法 5、向下取整除法 2、运算结果的精度处理 1.1、浮点数 1.2、总位数 1.3、…

c++的const总结(转)

为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:…

什么是网站?为什么要搭建网站?

网站:简单来说,网站就是通过互联网来展示信息的页面集合。它可以在电脑或者手机上打开,提供各种功能,比如查看新闻、购买商品、搜索信息等。 一、建网站的目的:展示个人或企业的存在 网站建设的首要目的之一是展示个人…

十年追光者 | 一段人生故事,聆听《康岛天香》创始人李波的成长历程

​为了响应国家乡村振兴, 绿水青山就是金山银山, 中药材复兴等 国家政策,来自老家河南的李波女士,如今在海南澄迈县桥头镇 开启了她的沉香创业故事, 沉香树一直以来被誉为海南第四颗树, 从最早 20 亩沉香…

java入门 -输入和输出

输入输出 开发中大量会使用输入和输出,今天来总结一下Java语法阶段常使用的输入和输出。 输出 System.out 控制台输出信息。 不换行显示一行: System.out.print( ); System.out.print("hello "); System.out.print("java!");运行结…

JMeter压测SpringBoot项目

压力测试架构图如下: 配置JMeter 在JMeter的bin目录,双击jmeter.bat 新建一个测试计划,并右键添加线程组: 进行配置 一共会发生4万次请求。 ctrl + s保存; 添加http请求: 配置http请求: 配置断言,来判断当前请求是否成功: 正常响应如下:

Tomcat Session ID---会话保持

简单拓补图 一、负载均衡、反向代理 7-1nginx代理服务器配置 [rootdlnginx ~]#yum install epel-release.noarch -y ###安装额外源[rootdlnginx ~]#yum install nginx -y[rootdlnginx ~]#systemctl start nginx.service[rootdlnginx ~]#systemctl status nginx.service [ro…