MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   一个图像融合函数 (https://www.labfans.com/bbs/showthread.php?t=7117)

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分量的维数情况.看你前面的程序,感觉是矩阵除法上可能有问题,你可以查查,改用点运算的要用点运算.


所有时间均为北京时间。现在的时间是 06:59

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.