【EPS32S3学习笔记】OPENCV应用于热成像的插值运算

2023-11-12

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

之前解锁了在ESP32上布置OPENCV及一些人脸识别的应用,后面看看还有哪些应用可以尝试。
当然可能每个点都不是很大,更多的是记录一些过程。


一、热成像应用的插值运算

简单来说就是一个图像Resize的过程,只不过在热成像这个领域避免不了,主要是因为传感器价格比较贵,例如一个2432像素的传感器就200块钱左右了,如果是要做一个分辨率高一点的,仅传感器的成本就承担不了。所以就需要插值运算来强行提升分辨率。
不过插值运算对于初入行的童鞋并不友好,更多会涉及数学方面的知识,插值的算法也很多:双线性插值法、三次多项式插值、先双线性插值再三次多项式插值、先三次多项式插值再双线性插值等等。如果没有一些参考,从0开始码这块的代码会比较麻烦。而且一般的插值的运算都是4倍的关系,比如现在像素是24
32,一次插值之后就是24324。如果是一些非4次幂的变换,还要额外考虑。所以会比较麻烦,而对于底层的嵌入式应用来说,相关的参考并不是很好找,所以这个时候就用到OPENCV提供的功能了。

二、热成像的插值运算过程

以2432变换到240320为例,步骤如下:。
1、从热成像传感器获取的数据,经过运算转成温度;
2、将温度数据转换为8位的灰度值,简单的计算方法就是取温度的最大值,最小值,按比例*255。
3、之后利用这些灰度值,创建MAT对象,再调用resize进行像素的变换。
4、之后再将转换后的灰度数据,转换成对应格式的RGB数据,也就是红外图像的伪彩色编码过程。

    static Mat dstImage;
    Mat inputImage(srcHeight, srcWidth, CV_8UC1, pSrcBuf);
    resize(inputImage,dstImage,Size(dstWidth,dstHeight),0,0,INTER_LANCZOS4  );

resize可以选择的插值算法也有很多:
INTER_NEAREST 最近邻插值
INTER_LINEAR 双线性插值,默认值
INTER_CUBIC 双三次插值
INTER_AREA 使用像素面积关系重采样。图像变化时的首选方法
INTER_LANCZOS4 8x8 邻域的 Lanczos 插值
INTER_MAX 插值代码的掩码
WARP_FILL_OUTLIERS 标志,填充所有目标图像像素。如果其中一些对应于源图像中的异常值,则将它们设置为零
WARP_INVERSE_MAP 标志,逆变换

这些算法都可以尝试下,看看效果差别。按照官方的推荐要缩小图像,通常使用 INTER_AREA 插值看起来效果最好,而使用放大图像,通常使用 INTER_CUBIC或 INTER_LINEAR 。

小TIPS,在这个过程中先进行灰度插值,再伪彩色编码比较好,还是先伪彩色编码,再进行插值?试验过了,对先伪彩色编码再插值的图像效果很差,连续性比较差。原因其实跟伪彩色编码的算法有关,因为伪彩色编码都不是线性的,而是分段的,这样原图像的差,经过非线性放大,再进行插值后,与原来就不再成比例了。


总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【EPS32S3学习笔记】OPENCV应用于热成像的插值运算 的相关文章

  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • 从图像坐标获取对象的世界坐标

    I have been following this http docs opencv org modules calib3d doc camera calibration and 3d reconstruction html docume
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • 使用 OpenCV 和/或 Numpy 对两个图像进行 Alpha 混合 [重复]

    这个问题在这里已经有答案了 我想将一个填充纯色的半透明矩形添加到已加载的半透明 PNG 中 这是我正在使用的输入图像示例 该图像加载了标准cv2 IMREAD UNCHANGED标志 以便完美保留 alpha 通道 该输入图像存储在imag
  • 使用 OpenCV 改进特征点匹配

    我想匹配立体图像中的特征点 我已经用不同的算法找到并提取了特征点 现在我需要一个良好的匹配 在本例中 我使用 FAST 算法进行检测和提取 BruteForceMatcher用于匹配特征点 匹配代码 vector lt vector
  • OpenCV VideoWriter 未写入 Output.avi

    我正在尝试编写一段简单的代码来获取视频 裁剪视频并写入输出文件 系统设置 OS Windows 10 Conda Environment Python Version 3 7 OpenCV Version 3 4 2 ffmpeg Vers
  • 如何在 cv2.VideoWriter 中使用 FPS 参数?

    好的 所以我正在制作视频 我想确切地知道如何使用 FPS 参数 它是一个浮点数 所以我假设这是我想要的每帧之间的间隔 你能给个例子吗 我只想知道视频会如何随着 FPS 参数值的变化而变化 因为我制作的视频现在太快了 谢谢 确实只是这样 fr
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 从扫描文档中提取行表 opencv python

    我想从扫描的表中提取信息并将其存储为 csv 现在我的表提取算法执行以下步骤 应用倾斜校正 应用高斯滤波器进行去噪 使用 Otsu 阈值进行二值化 进行形态学开局 Canny 边缘检测 进行霍夫变换以获得表格行 去除重复行 10像素范围内相
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • 深度估计的准确性 - 立体视觉

    我正在研究立体视觉 我对这个问题的深度估计的准确性感兴趣 这取决于几个因素 例如 适当的立体校准 旋转 平移和失真提取 图像分辨率 相机和镜头质量 失真越小 色彩捕捉正确 两个图像之间的匹配特征 假设我们没有低成本的相机和镜头 没有廉价的网
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • 使用 OpenCV 进行相机校准 - 如何调整棋盘方块大小?

    我正在使用 OpenCV Python 示例开发相机校准程序 来自 OpenCV 教程 http opencv python tutroals readthedocs io en latest py tutorials py calib3d
  • 提取二值图像中的最中心区域

    我正在处理二进制图像 之前使用此代码来查找二进制图像中的最大区域 Use the hue value to convert to binary thresh 20 thresh thresh img cv2 threshold h thre
  • 我的 Opencv 应用程序处理速度非常慢

    我正在构建一个 OpenCV 应用程序 它从相机捕获视频 并在删除背景后将其覆盖在另一个视频上 我无法达到合理的速度 因为它以大约 1 fps 的速度播放输出 而我的背景去除以 3 fps 的速度工作 有没有办法以正常速度显示背景视频并以
  • 相机校准:如何正确进行

    我正在尝试使用棋盘格通过众所周知的张氏方法进行校准 然后进行捆绑调整 该方法在 Matlab 和 OpenCV 中都可用 有很多经验指南 但从我个人的经验来看 准确性是相当随机的 它有时可能非常好 但有时也可能非常糟糕 实际上 只需将棋盘放
  • Alpha 混合可消除图像中的接缝

    我缝合了两张图像 但在最终图像中存在可见的接缝 我正在尝试使用阿尔法混合去除那条接缝 我知道 Alpha 混合是使用cvAddweight 函数 但在此函数参数是两个图像 alpha beta gamma和目的地 我正在服用gamma 0
  • 车辆分割和跟踪

    我已经从事一个项目一段时间了 目的是在无人机捕获的视频中检测和跟踪 移动 车辆 目前我正在使用 SVM 该 SVM 接受了从车辆和背景图像中提取的局部特征的特征袋表示的训练 然后 我使用滑动窗口检测方法来尝试定位图像中的车辆 然后我想要跟踪
  • OpenCV Sobel 滤波器 - 为什么它看起来这么糟糕,尤其是与 Gimp 相比?

    我正在尝试使用 OpenCV 重建一些我之前在 Gimp 中完成的预处理 第一级是用于边缘检测的 Sobel 滤波器 它在 Gimp 中运行得很好 现在这是我对 OpenCV 的尝试 opencv imgproc Sobel src sca

随机推荐

  • 2024年java面试--mysql(3)

    系列文章目录 2024年java面试 一 spring篇 2024年java面试 二 spring篇 2024年java面试 三 spring篇 2024年java面试 四 spring篇 2024年java面试 集合篇 2024年java
  • Photoshop 之利用 "调整边缘" 抠图

    目录 1 首先 看如下图像 人物图像包含很多头发 2 利用魔棒工具 选中选区 并选择 反向 选中人物图像 3 选择选项栏中的 调整边缘 或者菜单栏中的选择 调整边缘 4 利用调整边缘 修复毛发中的空白部分扣除 5 通过拷贝的图层 将图像抠出
  • 如何安装和使用Android夜神模拟器

    夜神模拟器 是全新一代的安卓模拟器 能够让你在电脑上畅玩手机游戏 与传统安卓模拟器相比 基于Android7 1内核 同时向下兼容Android5 1内核以及X86 AMD 具备极高的兼容性和稳定性 加上超高帧率模式 能够在电脑上运行高性能
  • Antd的Upload+fetch+FormData上传Excel文件请求方式?

    let formData new FormData formData append file fileList 0 fetch 接口名称 method POST headers Content Type multipart form dat
  • 平均年薪60.8万,程序员拿下这个证书有多吃香?!

    互联网行业竞争一年比一年严峻 随着互联网的发展和进步 很多人都是想要进军到编程行业中去 作为工程师的我们唯有不停地学习 不断的提升自己才能保证自己的核心竞争力 打破内卷 从而拿到更好的薪水 进入心仪的企业 前些天 我的程序员哥们和我说 他转
  • Pycharm关闭项目卡住怎么办?

    突然有一天创建新项目的时候 Pycharm卡在了关闭项目上 通过网上查阅资料 不断试探 我最终这样解决了 1 在设置中的自然语言中添加了中文 2 更新了Pycharm由2023 1到2023 4 3 在文件中关闭项目 然后等待了较长时间后
  • Sentinel分布式系统的流量防卫兵

    Sentinel 是什么 官网 https github com alibaba Sentinel wiki 介绍 随着微服务的流行 服务和服务之间的稳定性变得越来越重要 Sentinel 以流量为切入点 从流量控制 熔断降级 系统负载保护
  • ae2020不支持的视频驱动程序_AE 2020版本安装提示系统兼容性报告怎么解决?

    AE 2020版本安装提示系统兼容性报告怎么解决 很多设计师朋友会遇到这样的问题 安装完AE2020版本之后 打开软件 提示这样的信息显示系统兼容性报告可这样解决 快进来学习吧 系统是WIN10的 64位 点击不理会 可以打开软件 但是作为
  • ​LeetCode刷题实战26:删除排序数组中的重复项

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 删除排序数组中的重复项 我们先
  • vite 配置自动补全文件的后缀名

    vite 不建议自动补全 文件的后缀名的 const Home gt import views Home vue 文件是必须要加上 vue 的后缀名的 如果 想要像 webpack 一样的不用写 可以在vite config js中配置如下
  • windows server 2012 R2 安装mysql(一)

    windows server 2012 R2 安装mysql 一 最近遇到一个要做app的朋友 朋友想要做一个简单的线上APP app 的功能久不介绍了 笔者决定采用windows server 2012 r2 做应用服务器 数据库采用my
  • 疫情防控数据可视化平台的设计与实现 计算机专业毕业设计源码87063

    摘要 信息化社会内需要与之针对性的信息获取途径 但是途径的扩展基本上为人们所努力的方向 由于站在的角度存在偏差 人们经常能够获得不同类型信息 这也是技术最为难以攻克的课题 针对疫情防控数据可视化平台等问题 对如何通过计算机疫情防控数据可视化
  • 在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)

    1 首先在Qt Designer创建UI后 拖一个Widget窗口出来 2 在对象查看器中右击该Widget 选择提升窗口部件 如下操作 3 把UI转出来放在VS项目中 其中你的UI代码头文件会自带QVTKOpenGLNativeWidge
  • 非常实用: 2.4G天线设计指南(赛普拉斯工程师力作)

    前言 为了方便查看博客 特意申请了一个公众号 附上二维码 有兴趣的朋友可以关注 和我一起讨论学习 一起享受技术 一起成长 转载自 gt 非常实用 2 4G天线设计指南 赛普拉斯工程师力作 微信公众号 lt lt 射频百花潭 gt gt 本文
  • 分享 7 个 AI 优质开源项目!文本生成、自动化数据搜集...

    项目一 nanodet 超快速轻量级无锚物体检测模型 项目地址 https github com RangiLyu nanodet 项目特点 超轻量 模型文件只有 980KB INT8 或 1 8MB FP16 超快 在移动 ARM CPU
  • npm 实现原理

    输入 npm install 命令并敲下回车后 会经历如下几个阶段 以 npm 5 5 1 为例 1 执行工程自身 preinstall 当前 npm 工程如果定义了 preinstall 钩子此时会被执行 2 确定首层依赖模块 首先需要做
  • 基于STM32的脉搏心率检测仪(OLED可以实时显示脉冲波形)

    设计完整 功能可全部实现 有完整报告文档说明 程序以及pcb文件 可作为 课程设计 STM32实践学习 电子制作等 禁止转载 以及用于其他商业用途 B站对应讲解心率传感器项目链接 设计所实现的功能 利用STM32的AD采集功能实时采集心率传
  • 从零开始深度学习0521——keras基本知识+GAP理解

    Keras 中经常可以看到 K image data format channels first 深度学习中 Flatten层 的作用 lt GAP Flatten层的实现在Keras layers core Flatten 类中 作用 F
  • Version of Delve is too old for this version of Go【Goland Debug】报错

    最近升级了 Go 到 1 14 发现使用 Goland debug 程序的时候报错了 完整的报错信息如下 API server listening at 127 0 0 1 53951 Version of Delve is too old
  • 【EPS32S3学习笔记】OPENCV应用于热成像的插值运算

    系列文章目录 提示 这里可以添加系列文章的所有文章的目录 目录需要自己手动添加 例如 第一章 Python 机器学习入门之pandas的使用 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一