【MATLAB图像融合】[3]像素极大/小值选择及函数的调用

像素极大/小值选择

原理
       同上一篇文章一样,原理都是对像素进行操作。稍有不同的是,这次的策略是替换,而不是配权。首先读入两张图像,遍历所有的像素值;比较像素值的大小,选择大的或小的一方存入第三个矩阵当中;对所有像素都比较过后,生成的新矩阵就是我们所需要的融合图像了。
MATLAB实现

文件1,“主函数”。

clear;clc;

x1=imread('gcoffe1.tif');
x2=imread('gcoffe2.tif');
    
w=fmaxmin(x1,x2);                    %调用fmaxmin函数文件,传递参数x1,x2

subplot 221;imshow(x1);title('图像1');
subplot 222;imshow(x2);title('图像2');
subplot 223;imshow(uint8(w{1}));title('基于像素值选大的融合图像');
subplot 224;imshow(uint8(w{2}));title('基于像素值选小的融合图像');

文件2,“功能函数”。

function w=fmaxmin(x1,x2)
    x1=double(x1);
    x2=double(x2);
    [m,n]=size(x1);
    
    for i=1:m                   %基于像素值选大的简单图像融合方法
        for j=1:n
            if x1(i,j)>=x2(i,j)               
               y1(i,j)=x1(i,j);
            else
               y1(i,j)=x2(i,j);
            end
        end
    end
%------------------------------------------------------------------%
    for i=1:m                    %基于像素值选小的简单图像融合方法
        for j=1:n
            if x1(i,j)<x2(i,j)               
               y2(i,j)=x1(i,j);
            else
               y2(i,j)=x2(i,j);
            end
        end
    end
    w={y1,y2};                   %元胞数组(超级数组),存放两个矩阵。
end

运行结果:
在这里插入图片描述
注意事项
1、编写的功能函数文件名和函数名要保持一致。
2、编写不同的函数文件方便在其他程序中使用,所以功能确定且代码量较大的函数可以考虑新建函数文件;反之一次性的函数可以使用内联函数。
3、关于{}、[]、()的使用区别非常重要~很容易犯晕。

       前三篇文章都是入门使用,建立图像融合和MATLAB的一些基本概念;若要实现好的图像融合方法,需要学习一些基础的图像处理方法。我目前的路线是:基础图像处理(插值、卷积、采样等)→ 变换域 → 拉普拉斯分解 → 小波分解 → 空间域 → HIS变换 → 主成分分析 → … …。在后面的文章中,我还是尽量使用MATLAB去实现,方法、代码等或许会出现许多问题。欢迎评论留言、指正~

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值