
求matlab如何对多帧图像同一像素点取中值
现有100帧640*320的灰度图像1.bmp~100.bmp,怎么才能用matlab对这100帧图像的每一个像素点的值取中值,并且显示这张中值图像?希望高手帮我一下。...
现有100帧640*320的灰度图像1.bmp~100.bmp,怎么才能用matlab对这100帧图像的每一个像素点的值取中值,并且显示这张中值图像?希望高手帮我一下。
展开
2个回答
展开全部
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('最高频数图像')

2024-08-07 广告
作为东莞市大凡光学科技有限公司的一员,我们深知Matlab圆点标定板在相机标定中的重要性。该标定板通过均匀分布的圆点,帮助精确计算相机参数,优化成像效果。Matlab强大的编程功能,使得我们能够灵活设计标定板,调整圆点大小、数量和分布,以满...
点击进入详情页
本回答由东莞大凡提供
展开全部
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('最高频数图像')
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |