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

像素极大/小值选择

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

文件1,“主函数”。

clear;clc;x1=imread('gcoffe1.tif');
x2=imread('gcoffe2.tif');w=fmaxmin(x1,x2);                    %调用fmaxmin函数文件,传递参数x1,x2subplot 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:nif x1(i,j)>=x2(i,j)               y1(i,j)=x1(i,j);elsey1(i,j)=x2(i,j);endendend
%------------------------------------------------------------------%for i=1:m                    %基于像素值选小的简单图像融合方法for j=1:nif x1(i,j)<x2(i,j)               y2(i,j)=x1(i,j);elsey2(i,j)=x2(i,j);endendendw={y1,y2};                   %元胞数组(超级数组),存放两个矩阵。
end

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

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部