求matlab如何对多帧图像同一像素点取中值
现有100帧640*320的灰度图像1.bmp~100.bmp,怎么才能用matlab对这100帧图像的每一个像素点的值取中值,并且显示这张中值图像?希望高手帮我一下。...
现有100帧640*320的灰度图像1.bmp~100.bmp,怎么才能用matlab对这100帧图像的每一个像素点的值取中值,并且显示这张中值图像?希望高手帮我一下。
展开
展开全部
1、算法:
一个循环语句,分别读取每帧图像。对于每帧图像,用一个矩阵变量储存每一个像素的值,累加起来,最后除以帧数,得到中值。
2、例程:
clear all;
s=[];
for k=1:100
filename=[num2str(k), '.bmp']; % 图像文件要放在当前目录下,否则前面要加路径
b=imread(filename, 'bmp');
s=[s, double(b(:))]; % 图像分辨率必须一致,要不然会出错。
end
siz=size(b);
s=s';
% 显示最后一幅图像
subplot(2,2,1);
imshow(b)
title('原图像之一')
% 求均值图像
bm=sum(s)/100; % 求100幅图的均值
bm=reshape(bm,siz);
bm=uint8(bm);
subplot(2,2,2);
imshow(bm); % 显示均值图像
title('均值图像')
% 求中值图像
bm=median(s); % 求100幅图像的中间值
bm=reshape(bm,siz);
bm=uint8(bm);
subplot(2,2,3);
imshow(bm) % 显示中值图像
title('中值图像');
% 最大亮度图
n=hist(s,0:255); % 求灰度分布
[maxn, ind]=max(n); % 频数最高的灰度值,maxn为该灰度值出现的次数,ind为该灰度值在0:255中的下标
bm=reshape(ind-1,siz);
bm=uint8(bm);
subplot(2,2,4);
imshow(bm)
title('最高频数图像')
一个循环语句,分别读取每帧图像。对于每帧图像,用一个矩阵变量储存每一个像素的值,累加起来,最后除以帧数,得到中值。
2、例程:
clear all;
s=[];
for k=1:100
filename=[num2str(k), '.bmp']; % 图像文件要放在当前目录下,否则前面要加路径
b=imread(filename, 'bmp');
s=[s, double(b(:))]; % 图像分辨率必须一致,要不然会出错。
end
siz=size(b);
s=s';
% 显示最后一幅图像
subplot(2,2,1);
imshow(b)
title('原图像之一')
% 求均值图像
bm=sum(s)/100; % 求100幅图的均值
bm=reshape(bm,siz);
bm=uint8(bm);
subplot(2,2,2);
imshow(bm); % 显示均值图像
title('均值图像')
% 求中值图像
bm=median(s); % 求100幅图像的中间值
bm=reshape(bm,siz);
bm=uint8(bm);
subplot(2,2,3);
imshow(bm) % 显示中值图像
title('中值图像');
% 最大亮度图
n=hist(s,0:255); % 求灰度分布
[maxn, ind]=max(n); % 频数最高的灰度值,maxn为该灰度值出现的次数,ind为该灰度值在0:255中的下标
bm=reshape(ind-1,siz);
bm=uint8(bm);
subplot(2,2,4);
imshow(bm)
title('最高频数图像')
展开全部
clear all;
s=[];
for k=1:100
filename=[num2str(k), '.bmp']; % 图像文件要放在当前目录下,否则前面要加路径
b=imread(filename, 'bmp');
s=[s, double(b(:))]; % 图像分辨率必须一致,要不然会出错。
end
siz=size(b);
s=s';
% 显示最后一幅图像
subplot(2,2,1);
imshow(b)
title('原图像之一')
% 求均值图像
bm=sum(s)/100; % 求100幅图的均值
bm=reshape(bm,siz);
bm=uint8(bm);
subplot(2,2,2);
imshow(bm); % 显示均值图像
title('均值图像')
% 求中值图像
bm=median(s); % 求100幅图像的中间值
bm=reshape(bm,siz);
bm=uint8(bm);
subplot(2,2,3);
imshow(bm) % 显示中值图像
title('中值图像');
% 最大亮度图
n=hist(s,0:255); % 求灰度分布
[maxn, ind]=max(n); % 频数最高的灰度值,maxn为该灰度值出现的次数,ind为该灰度值在0:255中的下标
bm=reshape(ind-1,siz);
bm=uint8(bm);
subplot(2,2,4);
imshow(bm)
title('最高频数图像')
s=[];
for k=1:100
filename=[num2str(k), '.bmp']; % 图像文件要放在当前目录下,否则前面要加路径
b=imread(filename, 'bmp');
s=[s, double(b(:))]; % 图像分辨率必须一致,要不然会出错。
end
siz=size(b);
s=s';
% 显示最后一幅图像
subplot(2,2,1);
imshow(b)
title('原图像之一')
% 求均值图像
bm=sum(s)/100; % 求100幅图的均值
bm=reshape(bm,siz);
bm=uint8(bm);
subplot(2,2,2);
imshow(bm); % 显示均值图像
title('均值图像')
% 求中值图像
bm=median(s); % 求100幅图像的中间值
bm=reshape(bm,siz);
bm=uint8(bm);
subplot(2,2,3);
imshow(bm) % 显示中值图像
title('中值图像');
% 最大亮度图
n=hist(s,0:255); % 求灰度分布
[maxn, ind]=max(n); % 频数最高的灰度值,maxn为该灰度值出现的次数,ind为该灰度值在0:255中的下标
bm=reshape(ind-1,siz);
bm=uint8(bm);
subplot(2,2,4);
imshow(bm)
title('最高频数图像')
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询