【图像融合】基于四叉树的加权聚焦多聚焦图像融合含Matlab源码

 1 简介

四叉树分解算法将待分解的源图像 A 和源图像 B 定义为一对图像块组,若源图像块组中图像数量较多,则称之为图像块序列,最先进行分解的图像块组( 源图像) 称为四叉树的根节点,由根节点开始对图像块进行分解,每次分解为 4 个叶子节点,以此类推,直至分解条件结束。对每一次分解结果进行聚焦度测算,若符合 RPCA 判定条件阈值,则本节点停止分解,其余叶子节点继续分解,下面详细阐述本算法流程:首先,假定两种情况作为图像块分解的基础实施条件,

情况 1: 被分解出的块为全聚焦块。

情况 2:被分解出的块含有聚焦部分和非聚焦部分。其次将含有 m( m ≥ 2) 幅源图像的图像序列输入四叉树结果的根节点,对于根节点块序列,若其在 RPCA 检测中符合情况 1,则本块不需要继续分解,否则符合情况 2,需要进行第二级的四叉树分解,持续进行本过程,直到所有的聚焦区域被找出,或者已持续进行至四叉树的分解的最大级数。本文最终将源图像分解为 2 × 2 大小的图像块,其对应的分解级为最大分解级( max level) ,最大分解级的计算方式如下式所示:

其中 M × N 为源图像尺寸,lg 为对数运算符。

在进行四叉树分解前,输入至根节点的源图像需要进行正方形映射处理,以便分解至最终形态。假设源图像作为四叉树分解的第一级,最终分解的图像块大小为 2 × 2,那么图像的分解层数应该为log{ max( M - 1,N - 1) } + 1 的整数部分,当分解进行至最大级数时,可以认为这种情况下的聚焦度探测到达了最精确的情况,本文所使用的源图像块大小为 512×512。​

2 部分代码

% -------------------------------------------------------------------------% Clear history and memoryclc; clear; close all;%--------------------- Configurating the parameters -----------------------% Initialise the maximum split levellevel = 0;% image set name string, default: 'clock'. All image sets:% clock'|'lab'|'pepsi'|'OpenGL'|'flower'|'disk'|'toy'name = 'clock';% Set the image type.type = '.bmp';% Set the image number: the number of images in image set toy is 3, % and the image number of the other sets is 2.num = 2; %--------------------- Quadtree based image fusion -----------------------[fimg, decision_map] = Quadtree_Fusion(name, type, num, level);%------------------------- Show the fusion image -------------------------subplot(133);imshow(fimg);title('融合后的图')

3 仿真结果

4 参考文献

Xiangzhi Bai, Yu Zhang, Fugen Zhou, and Bindang Xue. Quadtree-based multi-focus image fusion using a weighted focus-measure[J]. Information Fusion, 2015, 22: 105-118.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年5月16日
下一篇 2022年5月16日

相关推荐