【MATLAB图像融合】[2]像素加权融合及图像融合的主观性

一、像素加权融合

原理
       在上一篇文章中提过,在MATLAB中,图像会以矩阵的形式读入、存入程序,对像素级的操作就是对矩阵中每个元素的操作。因此,如果想实现带权的操作,那么对像素点赋予权值,然后再对像素点进行计算就可以了。
MATLAB实现

clear;clc;

x1=imread('coffe1.tif');
x2=imread('coffe2.tif');

x1=rgb2gray(x1);         %rgb2gray函数可以将RGB图像转化成灰度图像。
x2=rgb2gray(x2);

[m,n]=size(x1);
for i=1:m                                %两次for循环遍历整个矩阵
    for j=1:n
        y(i,j)=0.4*x1(i,j)+0.6*x2(i,j);  %每个像素带权相加
    end
end

subplot 221;imshow(x1);title('原图像1');
subplot 222;imshow(x2);title('原图像2');
subplot 223;imshow(y);title('加权融合图像');

运行结果:
在这里插入图片描述

二、图像融合的主观性

图像融合具有的主观性,它体现在:
1、观察者侧重点不同,观察者认为的融合效果就不同。
2、同一方法在不同图像无论对观察者还是数学公式来说,体现的结果都不同。
3、反过来应用1、2两点,通过提前观察图像的特性,可以对特定一类的图像融合做出方法调整,达到更好的主观感受。

       以上面最简单的加权融合来说,通过观察,我们发现:对于原图像1,2。在图像的上半区域是图2清晰,而在图像的下半区域,是图1清晰。那么简单调整代码,融合效果就会发生变化。
MATLAB实现

clear;clc;

x1=imread('coffe1.tif');
x2=imread('coffe2.tif');

x1=rgb2gray(x1);         %rgb2gray函数可以将RGB图像转化成灰度图像。
x2=rgb2gray(x2);

[m,n]=size(x1);
m2=floor(m*9/20);            %floor函数实现小数的向左取整。
for i=1:m2                 %两次for循环遍历整个矩阵。
    for j=1:n
        y(i,j)=0.2*x1(i,j)+0.8*x2(i,j);  %上半区域给图2更多的权重。
    end
end
for i=m2+1:m                 %两次for循环遍历整个矩阵。
    for j=1:n
        y(i,j)=0.8*x1(i,j)+0.2*x2(i,j);  %下半区域给图1更多的权重。
    end
end
subplot 221;imshow(x1);title('原图像1');
subplot 222;imshow(x2);title('原图像2');
subplot 223;imshow(y);title('加权融合图像');

运行结果:
在这里插入图片描述

三、彩色图像的处理

       在一、二的代码中,我读入的都是RGB图像,然后进行灰度化的处理之后再对灰度图进行图像融合的操作。那么如果想对彩色图像直接进行处理该怎么做呢?这里有一种简单的方法可以参考。
MATLAB实现

clear;clc;

x1=imread('coffe1.tif');
x2=imread('coffe2.tif');

[m,n,d]=size(x1);       %新加入的d代表维度。这里的d=3。
y=[];							 %预分配内存,提高运行效率。
for i=1:m
    for j=1:n
        for dim=1:d     %对r,g,b三个通道处理。
            y(i,j,dim)=0.5*x1(i,j,dim)+0.5*x2(i,j,dim);
        end
    end
end

subplot 221;imshow(x1);title('原图像1');
subplot 222;imshow(x2);title('原图像2');
subplot 223;imshow(uint8(y));title('加权融合图像');

运行结果:
在这里插入图片描述
       虽然最终实现了彩色图像的处理。但是在实际学习过程中,为了减少不必要的麻烦、减少运行时间、减少潜在错误的风险,今后的图像融合方法还是会以灰度图像的融合为主,在阐明原理之后,向彩色图像拓展,都是可行的。
       下一篇将会给出像素极大值极限值方法,并且涉及函数的定义和调用方法。原理本身在本篇都以介绍。欢迎大家私信,评论。

  • 12
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值