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

基于matlab的单目相机标定

链接:
单目相机标定(使用Matlab)
用Matlab对单目相机参数的标定步骤(保姆级教程)

1.准备代码

调用摄像头代码(用于测试摄像头是否可用):

#https://blog.csdn.net/qq_37759113/article/details/124366513
import cv2def read_usb_capture():# 选择摄像头的编号camera = cv2.VideoCapture(0)# # 设置分辨率#camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)#camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 960)camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1200)camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 900)# 添加这句是可以用鼠标拖动弹出的窗体cv2.namedWindow('real_img', cv2.WINDOW_NORMAL)while(camera.isOpened()):# 读取摄像头的画面ret, frame = camera.read()# 真实图cv2.imshow('real_img', frame)# 按下'q'就退出if cv2.waitKey(1) & 0xFF == ord('q'):break# 释放画面camera.release()cv2.destroyAllWindows()if __name__ == '__main__':read_usb_capture()

使用摄像头拍照代码:

#https://www.jb51.net/article/256780.htm
import cv2
import sys
#引入库cap = cv2.VideoCapture(0) #读取笔记本内置摄像头或者0号摄像头i = 0
while True:ret, frame = cap.read()if (ret):cv2.namedWindow("Video01",0)   #创建一个名为Video01的窗口,0表示窗口大小可调#cv2.resizeWindow("Video01",640,480) ##创建一个名为Video01的窗口,设置窗口大小为 1920 * 1080 与上一个设置的 0 有冲突#cv2.resizeWindow("Video01",640,330)cv2.imshow("Video01", frame)#等待按键按下c = cv2.waitKey(1) & 0xff#若按下w则保存一张照片if c ==ord("w"):cv2.imwrite("C:/Users/wuxiao/Desktop/test/%d.bmp" %i, frame) #自己设置拍摄的照片的存储位置print("Save images %d succeed!" %i)i+=1#若按下Q键,则退出循环if c == ord("q"):break#随时准备按q退出
cap.release()
#关掉所有窗口
cv2.destroyAllWindows()

图像剪裁代码(用于双目相机):

#https://www.jb51.net/article/256780.htm
import numpy as np
import cv2#img1 = cv2.imread(r"/Users/inbc/Desktop/zuo/Left1.bmp")
#img2 = cv2.imread(r"/Users/inbc/Desktop/you/Right1.bmp")
for i in range(0,31) :#imgT = cv2.imdecode(np.fromfile('./images/%d.bmp'  %i ,dtype=np.uint8), -1)imgT = cv2.imdecode(np.fromfile('C:/Users/wuxiao/Desktop/stereo/%d.bmp'  %i ,dtype=np.uint8), -1) #读取拍摄的左右双目照片# cv2.imshow("zuo", img1[300:1200, 500:2000])# cv2.imshow("you", img2[300:1200, 500:2000])# cv2.waitKey(0)#设置左右照片的存储位置cv2.imwrite("C:/Users/wuxiao/Desktop/stereo/zuo/reLeft%d.bmp"  %i  ,imgT[0:480, 0:320] )#imgL的第一个参数是图片高度像素范围,第二个参数是图片宽度的像素范围cv2.imwrite("C:/Users/wuxiao/Desktop/stereo/you/reRight%d.bmp" %i ,imgT[0:480, 320:640] )print("Resize images%d Fnished!" %i)print("Fnished All!!!")

2.具体操作

链接:
单目相机标定(使用Matlab)
用Matlab对单目相机参数的标定步骤(保姆级教程)
补充:

2.1. 删除误差过大的图片的操作

如右上角所示,单张图像误差会有较大的,点击柱状图中误差较大的一项,在最左边会蓝色显示该图片,右键点击“Remove and Recalibrate”即可删去该图(即计算内参时不考虑该图)
在这里插入图片描述

2.2. 内参中需要关注的三组参数

直接在命令行内输入:

cameraParams.IntrinsicMatrix%相机内参
cameraParams.RadialDistortion%相机径向畸变参数
cameraParams.TangentialDistortion%相机切向畸变参数

在这里插入图片描述

注意

matlab计算的内参矩阵与opencv的内参数据互为转置关系
在这里插入图片描述

相关文章:

基于matlab的单目相机标定

链接: 单目相机标定(使用Matlab) 用Matlab对单目相机参数的标定步骤(保姆级教程) 1.准备代码 调用摄像头代码(用于测试摄像头是否可用): #https://blog.csdn.net/qq_37759113/art…...

DB-GPT 智谱在线模型配置

LLM_MODELzhipu_proxyllm PROXY_SERVER_URLhttps://open.bigmodel.cn/api/paas/v4/chat/completions ZHIPU_MODEL_VERSIONglm-4 ZHIPU_PROXY_API_KEY70e8ec7113882ff5478fcecaa47522479.ExY2LyjcvWmqrTAf...

Navicat 17 功能简介 | SQL 美化

SQL美化 本期,我们将深入挖掘 Navicat 的实用的SQL代码美化功能。你只需简单地点击“SQL 美化”按钮,即可轻松完成 SQL 的格式化。 随着 17 版本的发布,Navicat 也带来了众多的新特性,包括兼容更多数据库、全新的模型设计、可视化…...

RTA_OS内核源码解析 3.9-任务激活

RTA_OS内核源码解析 3.9-任务激活 文章目录 RTA_OS内核源码解析 3.9-任务激活一、激活简介二、同步激活2.1 中断管理2.2 异常条件判断2.3 激活Task2.4 任务调度2.4.1 Os_RaiseCrossCoreISR2.4.2 Os_CrossCoreISR三、异步激活3.1 异常条件判断3.2 激活Task一、激活简介 一般将T…...

新能源汽车充电需求攀升,智慧移动充电服务有哪些实际应用场景?

在新能源汽车行业迅猛发展的今天,智慧充电桩作为支持这一变革的关键基础设施,正在多个实际应用场景中发挥着重要作用。从公共停车场到高速公路服务区,从企业园区到住宅小区,智慧充电桩不仅提供了便捷的充电服务,还通过…...

计算机的错误计算(一百八十六)

摘要 就上节(即(一百八十五))内容,有读者来信,建议用另外一个大模型计算。本节详细讲解该大模型的对错,特别是涉及 Python Decimal的内容以及泰勒展式内容。 例1. 已知 用大模型计算 下面是…...

当我用影刀AI Power做了一个旅游攻略小助手

在线体验地址:旅游攻略小助手https://power.yingdao.com/assistant/ca1dfe1c-9451-450e-a5f1-d270e938a3ad/share 运行效果图展示: 话不多说一起看下效果图: 智能体的截图: 工作流截图: 搭建逻辑: 其实这…...

首批|云轴科技ZStack成为开放智算产业联盟首批会员单位

近日 ,在Linux基金会AI & Data及中国开源软件推进联盟的指导之下,开放智算产业联盟成立大会在北京成功召开。在大会上,联盟首次公布了组织架构并颁发了首批会员单位证书。凭借ZStack AIOS平台智塔和在智算领域的技术创新,云轴…...

MMO之AOI

这章来说下AOI算法,常用的有九宫格,灯塔(九宫格优化版),四叉树,十字链表/三轴链表(加跳跃表) 写这章主要为了以后温故 方便 1: 一般AOI 的基本接口如下 enter:对象进入地图; leave:对象离开地图…...

linux---多线程

线程的基本概念 定义:在Linux中,线程是进程内部的一个执行单元,是进程的一个实体,它是CPU调度和分派的基本单位。一个进程可以包含多个线程,这些线程共享进程的资源,如代码段、数据段、打开的文件、信号处理…...

【JavaEE初阶】线程 和 thread

本节⽬标 认识多线程 掌握多线程程序的编写 掌握多线程的状态 一. 认识线程(Thread) 1概念 1) 线程是什么 ⼀个线程就是⼀个 "执⾏流". 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 "同时" 执⾏着多份代码. 还…...

如何规避eBay账号被封的风险?原因与对策

​ebay是全球知名的跨境电商平台之一,吸引了不少的商家入驻。然而随着平台规则的不断更新和完善,很多ebay商家在运营的过程中,会遇到账号被封禁的问题。那ebay账号被封的原因有哪些?本文将带来详细的分析,帮助商家保护…...

Word使用分隔符实现页面部分分栏

文章目录 Word使用分隔符实现页面部分分栏分隔符使用页面设置 Word使用分隔符实现页面部分分栏 分隔符使用 word中的分隔符: 前面不分栏,后面分栏(或前面分栏,后面不分栏),只需要在分隔位置处插入分隔符:“连续”即…...

Express (nodejs) 相关

Express 相关 长乐未央学习视频东哥 1. 安装 express-generator 脚手架,新建项目 执行命令 npm install express express-generator4 -g 同时安装 express,和 express 脚手架. npm install express express-generator4 -g通过 express 脚手架创建 express 项目 exp…...

【Harmony Next】多个图文配合解释DevEco Studio工程中,如何配置App相关内容,一次解决多个问题?

解决App配置相关问题列表 1、Harmony Next如何配置图标? 2、Harmony Next如何配置App名称? 3、Harmony Next如何配置版本号? 4、Harmony Next如何配置Bundle ID? 5、Harmony Next如何配置build号? 6、Harmony Next多语言配置在哪…...

台球助教平台开发球厅预约选择机制和助教匹配选择机制详细需求实例说明(第十四章)

以下是对台球助教系统相关功能的详细规划描述: 一、预约助教功能 二、选择球厅练球功能 三、选择陪练时间功能 四、下单订单支付功能 一、预约助教功能 助教信息展示 在专门的 “助教预约” 页面,以列表形式呈现所有可供预约的台球助教。每个助教条目…...

MyBatis通过注解配置执行SQL语句原理源码分析

文章目录 前置准备流程简要分析配置文件解析加载 Mapper 接口MapperAnnotationBuilder解析接口方法注解parseStatement 方法详解MapperBuilderAssistant 前置准备 创建一个mybatis-config.xml文件&#xff0c;配置mapper接口 <mappers><!--注解配置--><mapper…...

开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述

定义 开放词汇目标检测&#xff08;Open-Vocabulary Object Detection, OVOD&#xff09;是一种目标检测任务&#xff0c;旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别&#xff0c;而OVOD模型则具有识别“开放词汇…...

PHP基础

PHP代码标记 标准标记&#xff1a;<?php ?> PHP注释 单行&#xff1a;// # 多行&#xff1a;/* */ 两种浏览器输出文本的方式&#xff1a;echo 和 print echo <?php header("Content-Type:text/html;charsetutf-8"); // 输出字符串 ec…...

启用WSL后,使用ssh通道连接ubuntu

Enjoy WSL 目的 启用wsl后&#xff0c;使用windows自带的powershell、cmd操作linux还是不太好使。以下介绍开启ssh通道&#xff0c;并保证能在ssh通道下&#xff0c;也能正常使用wsl中的win命令行&#xff0c;以及正常打开gui应用。 离线更新WSL&#xff0c;请跳转链接:离线…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...