登录论坛

查看完整版本 : 一个图像融合函数


zhangyang
2009-03-26, 23:49
这是一个图像融合程序,我看不太懂,也没有运行出结果,:请各位达人帮我分析一下,谢谢啦!
%IHS变换融合
rgb_image1=imread('D:\My Documents\MATLAB\R2007a\toolbox\images\imdemos\mul.tif');
rgb_image1=im2double(rgb_image1);
R=rgb_image1(:,:,1);
G=rgb_image1(:,:,2);
B=rgb_image1(:,:,3);
I=(R+G+B);
H=(G-B)/(3*(I-B));
S=1-B/I;
rgb_image2=imread('D:\My Documents\MATLAB\R2007a\toolbox\images\imdemos\pan.tif');
rgb_image1=im2double(rgb_image1);
rgb_image2=im2double(rgb_image2);
I=rgb_image2;
R=I*(1+2*S-3*H*S);
G=I*(1-S+3*H*S);
B=I*(1-S);
rgb_image=cat(3,R,G,B); %将R,G,B组成一个三维数组
subplot(1,3,1);image(rgb_image1);
subplot(1,3,2);image(rgb_image2);
subplot(1,3,3);image(rgb_image);

silas_xue
2009-03-27, 04:32
lz
1 .gif文件不是基于RGB格式的,直接读取并使用如下代码无法分离R、G、B分量;
R=rgb_image1(:,:,1);
G=rgb_image1(:,:,2);
B=rgb_image1(:,:,3);
故导致代码无法运行;改为读取.bmp的图像文件应当可以运行。

2 不是IHS空间,而是HSI空间,即HSI空间假彩色模型,相关知识你可以百度或者Google一下,或者到数据库中查询。

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。

wxw0827
2009-03-31, 15:54
强啊,学习中。。。。

lichunjie3616
2011-03-14, 13:04
弱弱地问一下:灰度图像使用RGB怎么表示,二维矩阵如何确定?(,,1),(,,2)(,,3)是彩色图像的固定表示吗?

lichunjie3616
2011-04-05, 18:09
不知有什么问题,即便是.bmp图片也不能运行
提示:??? Error using ==> mtimes
Input arguments must be 2-D.

Error in ==> ok at 14
R=I*(1+2*S-3*H*S);

yhcode
2011-04-05, 19:49
又见到silas_xue的帖子了,还是那么具体,那么详细,呵呵!
从楼主的错误提示"Input arguments must be 2-D." 上看,出现错误的表达式上有维数不匹配的问题.你可以断点运行下看看,R表达式中H,S,I分量的维数情况.看你前面的程序,感觉是矩阵除法上可能有问题,你可以查查,改用点运算的要用点运算.