%%
p1=imread('F:\img1.jpg');
p2=imread('F:\img2.jpg');
p1=rgb2gray(p1);
p2=rgb2gray(p2);
%平均
[m,n]=size(p1);
I1=zeros(m,n);
w1=0.5;w2=0.5;
w=w1+w2;
for i=1:m
for j=1:n
I1(i,j)=(w1*p1(i,j)+w2*p2(i,j))/w;
end
end
%加权平均
I2=zeros(m,n);
w1=0.25;w2=0.75;
w=w1+w2;
for i=1:m
for j=1:n
I2(i,j)=(w1*p1(i,j)+w2*p2(i,j))/w;
end
end
%灰度值选大法
I3=zeros(m,n);
for i=1:m
for j=1:n
I3(i,j)=max(p1(i,j),p2(i,j));
end
end
%灰度值取小法
I4=zeros(m,n);
for i=1:m
for j=1:n
I4(i,j)=min(p1(i,j),p2(i,j));
end
end
figure
subplot(2,2,1)
imshow(I1,[]);title('两幅图像像素灰度值平均后的图像');
subplot(2,2,2)
imshow(I2,[]);title('两幅图像像素灰度值加权平均后的图像');
subplot(2,2,3)
imshow(I3,[]);title('像素选大法');
subplot(2,2,4)
imshow(I4,[]);title('像素取小法');
%%
%彩色图像的分解与合成
img=imread('F:\s1v.jpg');
R=img(:,:,1); %获取红色分量
G=img(:,:,2); %获取绿色分量
B=img(:,:,3); %获取蓝色分量
figure
subplot(2,2,1)
imshow(img);title('原始图像');
subplot(2,2,2)
imshow(R,[]);title('红色分量');
subplot(2,2,3)
imshow(G,[]);title('绿色分量');
subplot(2,2,4)
imshow(B,[]);title('蓝色分量');
%蓝色加高斯
Bp=imnoise(B,'gaussian',0,0.01);
%绿色对数变换
Gp=mat2gray(log(1+double(G)));
%红色图像反转
Rp=256-1-R;
%合成
Ip=cat(3,Rp,255.*Gp,Bp);
figure
subplot(2,2,1)
imshow(Ip,[]);title('合成图像');
subplot(2,2,2)
imshow(Rp,[]);title('红色图像反转');
subplot(2,2,3)
imshow(Gp,[]);title('绿色对数变换');
subplot(2,2,4)
imshow(Bp,[]);title('蓝色加高斯');
%%
%突出感兴趣目标
f=imread('F:\sqv.jpg');
f=im2double(f);
r=f(:,:,1);%红
g=f(:,:,2);%绿
b=f(:,:,3);%蓝
%二值子图像提取
[m,n]=size(r);
D=ones(m,n);
xmin=59;ymin=317;
xmax=159;ymax=417;
figure
subplot(2,2,1)
imshow(f,[]);title('原始图像');
for i=ymin:ymax
for j=xmin:xmax
D(i,j)=0;
end
end
subplot(2,2,2)
imshow(D);title('提取窗口');
for i=ymin:ymax
for j=xmin:xmax
D(i,j)=5;
end
end
Ir=r.*double(D);
P=cat(3,Ir,g,b);
subplot(2,2,3)
imshow(P,[]);title('子图像提取');
%%
%差异图像
p1=imread('F:\img1.jpg');
p2=imread('F:\img2.jpg');
p1=rgb2gray(p1);
p2=rgb2gray(p2);
%均值差异
n=3;%3*3的窗口
[w,h]=size(p1);
v1=double(p1);
v2=double(p2);
c1=zeros(w,h);
u1=zeros(w,h);
u2=zeros(w,h);
for i=2:w-1
for j=2:h-1
a=v1(i-1:i+1,j-1:j+1);
b=v2(i-1:i+1,j-1:j+1);
u1(i,j)=sum(sum(a))/(n*n);
u2(i,j)=sum(sum(b))/(n*n);
end
end
for i=1:w
for j=1:h
C1=u1(i,j)/(u2(i,j)+0.00001);
C2=u2(i,j)/(u1(i,j)+0.00001);
c1(i,j)=1-min(C1,C2);
end
end
figure
subplot(1,2,1)
imshow(c1,[]);title('均值差异');
%对数差异
c2=zeros(w,h);
for i=1:w
for j=1:h
c2(i,j)=abs(log(u2(i,j)+0.00001)-log(u1(i,j)+0.00001));
end
end
subplot(1,2,2)
imshow(c2);title('对数差异');
%图像融合
F1=fftshift(fft2(double(c1)));
F2=fftshift(fft2(double(c2)));
[m,n]=size(F1);
FF=zeros(m,n);
m_mid=m/2;
n_mid=n/2;
H=zeros(m,n);
D0=60;
for i=1:n
for j=1:m
D=sqrt((i-m_mid).^2+(j-n_mid).^2);
if D<D0
FF(i,j)=0.5*(F1(i,j)+F2(i,j));
else
FF(i,j)=max(F1(i,j),F2(i,j));
end
end
end
g1=fftshift(FF);
g=ifft2(g1);
figure
subplot(1,2,1)
imshow(abs(g),[]);title('图像融合后(高频成分取大)');
FF=zeros(m,n);
for i=1:n
for j=1:m
D=sqrt((i-m_mid).^2+(j-n_mid).^2);
if D<D0
FF(i,j)=0.5*(F1(i,j)+F2(i,j));
else
FF(i,j)=min(F1(i,j),F2(i,j));
end
end
end
g1=fftshift(FF);
g=ifft2(g1);
subplot(1,2,2)
imshow(abs(g),[]);title('图像融合后(高频成分取小)');
e3_matlab_RGB三通道_图像处理_图像融合_
版权申诉
5星 · 超过95%的资源 163 浏览量
2021-10-01
04:30:01
上传
评论 5
收藏 1KB RAR 举报
西西nayss
- 粉丝: 70
- 资源: 4754
最新资源
- [咒术回战][20][超规格][中文][1080P].mp4
- 随机森林RF葡萄酒分类,随机森林二分类(代码完整,数据齐全)
- 香蕉新鲜度等级识别香蕉成熟度识别分类数据集1186张3类别.7z
- 香蕉成熟度识别分类数据集13478张4类别.7z
- 安卓Android图书馆座位占座app设计可导入Studio源码案例设计.zip
- 安卓Android汽车票售票订票app设计可导入Studio源码案例设计.zip
- 安卓android高校开放式实验室管理app可导入Studio源码案例设计.zip
- 安卓Android车辆运输信息管理App可升级Studio源码案例设计.zip
- Android Studio移动应用开发.zip
- android studio-GIT.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈