【MATLAB图像融合】[9]IHS变换图像融合

IHS空间变换解决全色锐化

什么是全色锐化?
       我们知道,使用不同类型的图像传感器,可以得到不同类型的图像。这里两个种类包含在其中:全色图像,多光谱图像。全色图像,是遥感器获取整个可见光波区(一般定义在0.4μ—0.7μ间)的黑白影像称全色影像。多光谱图像是指包含很多带的图像,有时只有3个带(彩色图像就是一个例子)但有时要多得多,甚至上百个。本文讨论的是3通道情况。每个带是一幅灰度图像,它表示根据用来产生该带的传感器的敏感度得到的场景亮度。
       全色锐化就是指用多光谱图像的多光谱信息给全色图像“上色”,形成具有多光谱性质的高分辨率彩色图像。全色锐化不一定使用图像融合技术,但是图像融合技术是目前解决全色锐化问题最好的选择。
IHS变换其原理可解决的问题包括且不限于全色锐化,比如红外+可见光融合等。
什么是IHS空间?
       IHS是计算机上定量处理色彩时通常采用表色系统。IHS彩色坐标系统对颜色属性易于识别和量化,色彩的调整(数学变换)方便、灵活,因而往往进行RGB系统一IHS系统的彩色空间变换。所谓IHS彩色变换,是指将标准RGB图像有效地分离为代表变间信息的明度(I)和代表波谱信息的色调(H)、饱和度(S)。
IHS变换的原理
       1、一幅高分辨率的灰度图像,一幅低分辨率的彩色图像。
       2、将两幅源图像都进行RGB→IHS色彩空间的变换。原因在于:RGB的三个通道都保存的是颜色信息。而IHS同样有三个通道,保存的却是I(强度),H(色调),S(饱和度)。不难发现,色调与饱和度和分辨率无关,而R,G,B三个分量都与分辨率紧密联系。
       3、因此,将I分量提取出来;用高分辨率灰度图像的I替换低分辨彩色图像的I,同时保留彩色图像的H与S分量,就可以完成全色锐化。
MATLAB实现

function OUT=IHSfusion(A,B)          %这里图像A恒为高分图像,B为彩色图像。
    IHS=[1/3,1/3,1/3;-(2^0.5)/6,-(2^0.5)/6,(2^1.5)/6;1/(2^0.5),-1/(2^0.5),0];
    RGB=[1,-1/(2^0.5),1/(2^0.5);1,-1/(2^0.5),-1/(2^0.5);1,2^0.5,0];
    %定义IHS变换矩阵以及RGB变换矩阵。
    y1=A;y2=B;
    [m,n,d]=size(y1);
    
    yr1=y1(:,:,1);yg1=y1(:,:,2);yb1=y1(:,:,3);
    yr1=reshape(yr1,1,m*n); yg1=reshape(yg1,1,m*n);yb1=reshape(yb1,1,m*n);
    %整形,使R,G,B这个三维矩阵变成二维矩阵。
    yt1=[yr1;yg1;yb1];
    Tt1=IHS*yt1;
    TI1=Tt1(1,:);   % TV11=Tt1(2,:);TV12=Tt1(3,:);
    
    yr2=y2(:,:,1);yg2=y2(:,:,2);yb2=y2(:,:,3);    %同上操作
    yr2=reshape(yr2,1,m*n); yg2=reshape(yg2,1,m*n);yb2=reshape(yb2,1,m*n);
    yt2=[yr2;yg2;yb2];
    Tt2=IHS*yt2;
    TV21=Tt2(2,:);TV22=Tt2(3,:);  % TI2=Tt2(1,:);

    TN=[TI1;TV21;TV22];         %用高分亮度替换全色亮度。
    TN=double(TN);
    
    R1=RGB*TN;
    R=R1(1,:);G=R1(2,:);B=R1(3,:);
    RN=reshape(R,m,n);
    GN=reshape(G,m,n);
    BN=reshape(B,m,n);
    TI=cat(3,RN,GN,BN);         %链接回三维矩阵。
    
    OUT=uint8(TI);
end

函数调用

clear;clc;close all;

A1=imread('1.png');
A2=imread('2.png');
x1=double(A1);x2=double(A2);
[tem1r,tem1c,d1]=size(x1);[tem2r,tem2c,d2]=size(x2);

if (tem1r*tem1c) > (tem2r*tem2c)
    x2=imresize(x2,[tem1r,tem1c]);
    OUT=IHSfusion(x1,x2);
else
    x1=imresize(x1,[tem2r,tem2c]);
    OUT=IHSfusion(x2,x1);
end

subplot 221;imshow(A1);title('源图像1');
subplot 222;imshow(A2);title('源图像2');
subplot 223;imshow(OUT);title('融合图像');

运行结果
在这里插入图片描述方法解释
1、IHS←→RGB转换公式(线性变换)。
在这里插入图片描述
2、融合方法为直接替换法。

       IHS本来是想放在后面学习的,但是近几年的基于传统方法的一些改进方法使用了IHS/PCA等方法。为了论文的学习,这里只好把它俩提前一下,之后再去做小波的学习。下一篇是基于IHS变换的融合方法。欢迎大家一起交流学习。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值