Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-03-18
年龄: 45
帖子: 5
声望力: 0 ![]() |
![]()
这是一个图像融合程序,我看不太懂,也没有运行出结果,:请各位达人帮我分析一下,谢谢啦!
%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); |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26 ![]() |
![]()
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”,再次登陆时亦便于查看回答是否真的帮到你了。 |
![]() |
![]() |
![]() |
#3 |
普通会员
注册日期: 2008-09-06
年龄: 41
帖子: 32
声望力: 17 ![]() |
![]()
强啊,学习中。。。。
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2011-03-11
帖子: 3
声望力: 0 ![]() |
![]()
弱弱地问一下:灰度图像使用RGB怎么表示,二维矩阵如何确定?(,,1),(,,2)(,,3)是彩色图像的固定表示吗?
|
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2011-03-11
帖子: 3
声望力: 0 ![]() |
![]()
不知有什么问题,即便是.bmp图片也不能运行
提示:??? Error using ==> mtimes Input arguments must be 2-D. Error in ==> ok at 14 R=I*(1+2*S-3*H*S); |
![]() |
![]() |
![]() |
#6 |
高级会员
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21 ![]() |
![]()
又见到silas_xue的帖子了,还是那么具体,那么详细,呵呵!
从楼主的错误提示"Input arguments must be 2-D." 上看,出现错误的表达式上有维数不匹配的问题.你可以断点运行下看看,R表达式中H,S,I分量的维数情况.看你前面的程序,感觉是矩阵除法上可能有问题,你可以查查,改用点运算的要用点运算.
__________________
工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755 |
![]() |
![]() |