多曝光融合算法(三)cv2.createAlignMTB()多曝光图像融合的像素匹配问题

文章目录

    • 1.cv2.createAlignMTB() 主要是计算2张图像的位移,假设位移移动不大
    • 2.多曝光图像的aline算法:median thresold bitmap原理讲解
    • 3.图像拼接算法stitch
    • 4.多曝光融合工具箱

1.cv2.createAlignMTB() 主要是计算2张图像的位移,假设位移移动不大

而且计算的是全局的位移

参考下面的链接:
https://blog.csdn.net/LuohenYJ/article/details/89712234
https://blog.csdn.net/LuohenYJ/article/details/89840655
https://docs.opencv.org/4.x/d2/df0/tutorial_py_hdr.html
方便理解

使用代码:

print("Aligning images ... ")
alignMTB = cv2.createAlignMTB()
alignMTB.process(img_list, img_list)

2.多曝光图像的aline算法:median thresold bitmap原理讲解

https://blog.csdn.net/weixin_44735951/article/details/88941012

在这里插入图片描述

  1. 转换为灰度图或者利用G通道

  2. 利用均值或者中值,作为阈值得到二值图像。之所以不用sober,canny是因为不同曝光下检测到的边缘一致性比较低。

  3. 计算均值和中值的时候,对于严重过曝或者过暗的图像,可能因为大量的255,0像素导致 计算的均值 接近255和0。一个更鲁棒的方法计算均值或者中值是 排除 250以上或者5以下的像素

  4. 接下来就是通过阈值图像进行异或运算,这样差异为1。那么我们通过遍历其中一个图像的位移dx,dy,计算 error_sum, 寻找最恰到的dx,dy

  5. 考虑到dx,dy可能太大,利用金字塔减少计算量,从最后一层开始,每次搜索范围就是 [-1,1]很小
    在这里插入图片描述

  6. 异或运算计算差异的时候还有一个问题是 在均值附近的一些区域,两张不同曝光的图像的二值图可能被引入一些噪声,此时可以计算图像的 exclusion mask,标记,在均值[-4,4]的区域。 这两张曝光图的exclusion mask 和 xor异或运算得到差异图 再进行与运算,得到更清晰的差异。
    在这里插入图片描述

3.图像拼接算法stitch

http://www.s1nh.org/post/A-survey-on-image-mosaicing-techniques/

如图所示,图像拼接分为四个步骤:图像匹配(registration)、重投影(reprojection)、缝合(stitching)和融合(blending)。

stitch中的配准 主要是不同视角的图像重合区域不会太大,主要是根据特征点求转换矩阵。

而视频前后帧这种配准,小位移,重合区域多,主要利用光流。

还有特殊的图像就是多帧曝光,小位移,重合区域多,但是亮度差异有点大。

4.多曝光融合工具箱

https://github.com/Galaxies99/AlignHDRToolkit

介绍了一些配准方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python中猴子补丁是什么,如何使用

1、猴子补丁奇遇记 🐒 在Python的世界深处,隐藏着一种神秘而又强大的技巧——猴子补丁(Monkey Patching)。这是一项允许你在程序运行时动态修改对象(如模块、类或函数)的行为的技术。它得名于其“快速修补…

.net后端程序发布到nignx上,通过nginx访问

后端端口是:5009,ngixn端口5001 ,域名是 www.ckdq.site server { listen 5001; #server_name localhost; server_name www.ckdq.site; location / { proxy_pass http://localhost:5009; proxy_http_version 1.1; proxy_set_header Upgrade…

问题排查: Goalng Defer 带来的性能损耗

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言问题背景结论 引言 性能优化之路道阻且长,因为脱敏规定,…

vite常识性报错解决方案

1.导入路径不能以“.ts”扩展名结束。考虑改为导入“xxx.js” 原因:当你尝试从一个以 .ts 结尾的路径导入文件时,ESLint 可能会报告这个错误,因为它期望导入的是 JavaScript 文件(.js 或 .jsx)而不是 TypeScript 文件&…

coap-emqx:使用libcoap与emqx通信

# emqx开启CoAP网关 请参考【https://blog.csdn.net/chenhz2284/article/details/139562749?spm1001.2014.3001.5502】 # 写一个emqx的客户端程序&#xff0c;不断地往topic【server/1】发消息 【pom.xml】 <dependency><groupId>org.springframework.boot<…

速盾:高防 CC CDN 的优势剖析

在当今数字化的世界中&#xff0c;网络安全和性能优化至关重要。高防 CC CDN 作为一种先进的技术组合&#xff0c;展现出了诸多显著的优势。 首先&#xff0c;高防 CC 部分能够提供强大的抵御 CC 攻击的能力。CC 攻击往往会造成服务器资源的大量消耗&#xff0c;导致正常服务受…

雪花雪花雪花

/* * Project: 0x14_Hash * File Created:Monday, January 18th 2021, 10:21:24 am * Author: Bug-Free * Problem:AcWing 137. 雪花雪花雪花 */ #include <cstdio> #include <cstring> #include <iostream> #include <vector> #define ll long …

开源与新质生产力

在这个信息技术迅猛发展的时代&#xff0c;全球范围内的产业都在经历着深刻的变革。在这样的背景下&#xff0c;“新质生产力”的概念引起了广泛的讨论。无论是已经成为或正努力转型成为新质生产力的企业&#xff0c;都在寻求新的增长动力和竞争优势。作为一名长期从事开源领域…

JavaScript 编程语言【 数据类型】日期和时间

文章目录 日期和时间创建访问日期组件设置日期组件自动校准&#xff08;Autocorrection&#xff09;日期转化为数字&#xff0c;日期差值Date.now()基准测试&#xff08;Benchmarking&#xff09;对字符串调用 Date.parse总结✅任务创建日期显示星期数欧洲的星期表示方法许多天…

数据交换平台_05_ 监控和管理消息队列

数据交换平台_05_ 监控和管理消息队列 目录概述需求:设计思路实现思路分析1.监控和管理消息拓展实现参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,…

哈希算法实现

哈希算法概述 哈希算法(Hashing Algorithm)是一种将输入数据映射到固定大小的哈希值的算法,用于高效的查找和插入操作。哈希表(Hash Table)是哈希算法的典型应用,通过哈希函数将键映射到表中的索引位置,从而实现快速的数据存取。 以下是哈希表的一个简单实现,以及如何使…

Linux用户和用户组的管理

目录 前言一、系统环境二、Linux用户组的管理2.1 新增用户组2.2 删除用户组2.3 修改用户组2.4 查看用户组 三、Linux用户的管理3.1 新增用户3.2 删除用户3.3 修改用户3.4 查看用户3.5 用户口令&#xff08;密码&#xff09;的管理 总结 前言 本篇文章介绍如何在Linux系统上实现…

OrangePi Kunpeng Pro深度评测:性能与体验的完美融合

文章目录 一、引言二、硬件开箱与介绍1.硬件清单2.硬件介绍 三、软件介绍四、性能测试1. 功率测试2. cpu测试2.1 单线程cpu测试2.2 多线程cpu测试 五、实际开发体验1. 搭建API服务器2. ONNX推理测试3. 在线推理平台 五、测评总结1. 能与硬件配置2. 系统与软件3. 实际开发体验个…

jQuery:一站式指南

目录 jQuery&#xff1a;一站式指南前言1. jQuery简介1.1 jQuery的历史1.2 jQuery的安装 2. jQuery的核心概念2.1 选择器2.2 操作DOM2.2.1 内容操作2.2.2 属性操作2.2.3 CSS操作2.2.4 DOM结构操作 2.3 事件处理2.3.1 绑定事件2.3.2 事件委托2.3.3 解绑事件 3. jQuery的动画与效…

Unity物体材质属性Offset动态偏移

Unity物体材质属性Offset动态偏移 MeshRenderer mr;float offset;public float scrollSpeed 0.5F;private void Start(){mr GetComponent<MeshRenderer>();}void Update(){offset -Time.time * scrollSpeed;mr.material.mainTextureOffset new Vector2(0, -offset);}…

探索智慧商场的功能架构与应用

在数字化和智能化的浪潮下&#xff0c;智慧商场已经成为零售业的重要发展方向之一。智慧商场系统的功能架构设计与应用&#xff0c;结合了现代信息技术和零售业的实际需求&#xff0c;为商场的管理和运营提供了全新的解决方案。本文将深入探讨智慧商场的功能架构与应用&#xf…

SpringAOP-代理方式-Cglib动态代理

文章目录 cglib动态代理 cglib是基于继承的方式实现的 是继承目标类从而产生代理类 springaop底层使用的就是cglib的动态代理 package com.itheima.cjlibproxy;import net.sf.cglib.proxy.Callback; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodI…

matlab---app

一 基础 标签和信号灯没有回调函数 clc,clear,close all %清理命令区、工作区&#xff0c;关闭显示图形 warning off %消除警告 feature jit off %加速代码运行 ysw{i}i %循环赋值 celldisp(ysw) %显示元胞数组ysw.y1{1}[1,2] …

shaderlab 关键点记录

1.C#获取着色器标签的接口 可以使用 Material.GetTag API 从 C# 脚本中读取子着色器标签&#xff0c; 2.常用的标签 subshader的标签 “RenderPipeline” “[name]” //向 Unity 告知此子着色器是否与 URP 或 HDRP 兼容。 值&#xff1a;UniversalRenderPipeline //此…

leetcode够用之java语法

常用方法 Arrays.sort()排序 import java.util.Arrays;public class Main {public static void main(String[] args) {int[] numbers {9, 2, 5, 1, 7, 3};Arrays.sort(numbers);System.out.println(Arrays.toString(numbers)); // 输出: [1, 2, 3, 5, 7, 9]} }获取str中的第…