【图像融合】基于matlab GUI区域分割图像融合(融合指标)【含Matlab源码 866期】
【摘要】
一、区域分割图像融合简介
基于区域分割的红外和可见光图像融合方法
二、部分源代码
function popupmenu1_CreateFcn(hObject, eventdata, handles)...
一、区域分割图像融合简介
二、部分源代码
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
val=get(hObject,'value');
global wavelet;
global X Y ;
global ultimate;
switch val
case 3 %低频取均值,高频局域方差最大
if ndims(X)==3
else
[m,n]=size(X);
zz=zeros(m,n,3);
zz(:,:,1)=X;
zz(:,:,2)=X;
zz(:,:,3)=X;
X=zz;
end
if ndims(Y)==3
else
[m,n]=size(Y);
zzz=zeros(m,n,3);
zzz(:,:,1)=Y;
zzz(:,:,2)=Y;
zzz(:,:,3)=Y;
Y=zzz;
end
X=double(X);
Xr=X(:,:,1);
Xg=X(:,:,2);
Xb=X(:,:,3);
[aA1,aH1,aV1,aD1]=dwt2(Xr,wavelet);
[aA2,aH2,aV2,aD2]=dwt2(Xg,wavelet);
[aA3,aH3,aV3,aD3]=dwt2(Xb,wavelet);
Y=double(Y);
Yr=Y(:,:,1);
Yg=Y(:,:,2);
Yb=Y(:,:,3);
[bA1,bH1,bV1,bD1]=dwt2(Yr,wavelet);
[bA2,bH2,bV2,bD2]=dwt2(Yg,wavelet);
[bA3,bH3,bV3,bD3]=dwt2(Yb,wavelet);
newA1=zeros(size(aA1));
newA2=zeros(size(aA2));
newA3=zeros(size(aA3));
newH1=zeros(size(aH1));
newV1=zeros(size(aV1));
newD1=zeros(size(aD1));
newH2=zeros(size(aH2));
newV2=zeros(size(aV2));
newD2=zeros(size(aD2));
newH3=zeros(size(aH3));
newV3=zeros(size(aV3));
newD3=zeros(size(aD3));
%低频融合规则
[m,n]=size(aA1);
for i=1:m
for j=1:n
newA1(i,j)=(aA1(i,j)+bA1(i,j))/2;
end;
end;
for i=1:m
for j=1:n
newA2(i,j)=(aA2(i,j)+bA2(i,j))/2;
end;
end;
for i=1:m
for j=1:n
newA3(i,j)=(aA3(i,j)+bA3(i,j))/2;
end;
end;
%高频融合规则
fun=inline('var(x(:))');%计算3*3区域的标准差
H_aH1=nlfilter(aH1,[3 3],fun);%在aH上划分3*3的窗口,并用fun函数对其进行处理,fun如上
H_aV1=nlfilter(aV1,[3 3],fun);
H_aD1=nlfilter(aD1,[3 3],fun);
H_bH1=nlfilter(bH1,[3 3],fun);
H_bV1=nlfilter(bV1,[3 3],fun);
H_bD1=nlfilter(bD1,[3 3],fun);
for i=1:m
for j=1:n
if H_aH1(i,j)>=H_bH1(i,j);
newH1(i,j)=aH1(i,j);
else
newH1(i,j)=bH1(i,j);
end
end
end
for i=1:m
for j=1:n
if H_aV1(i,j)>=H_bV1(i,j);
newV1(i,j)=aV1(i,j);
else
newV1(i,j)=bV1(i,j);
end
end
end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/116301727
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)