声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1775|回复: 3

[图像处理] 平均人脸的制作探讨

[复制链接]
发表于 2007-9-13 00:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
已知:有10幅已截好的人脸bmp图片,种族肤色各不相同,图片规格都是48*48
问:求10个人的平均脸并显示出来,如何编程?
我的想法:
for i=1:10
      a=imread(strcat('E:\平均脸\pjl',num2str(i),'.bmp'));
      b=a(1:48*48);
% b是行矢量 1×N,其中N=48*48,提取顺序是先列后行,即从上到下,从左到右
      b=double(b);
      allsamples=[allsamples; b];  
% allsamples 是一个M * N 矩阵,allsamples 中每一行数据代表一张图片,M为10
end
samplemean=mean(allsamples); % 平均图片,1 × N
imshow(samplemean);
问题:显示不出图像,说是数据太大
回复
分享到:

使用道具 举报

发表于 2007-9-13 20:02 | 显示全部楼层
原帖由 smiles54 于 2007-9-13 00:10 发表
已知:有10幅已截好的人脸bmp图片,种族肤色各不相同,图片规格都是48*48
问:求10个人的平均脸并显示出来,如何编程?
我的想法:
for i=1:10
      a=imread(strcat('E:\平均脸\pjl',num2str(i),'.bmp')) ...


使用 imread 后,a 矩阵就是二维(灰度图)或者三维(RGB图)的,不明白你为何要做成一维的
发表于 2007-9-14 10:42 | 显示全部楼层
恩 首先你要确定你样本是不是都是灰度图。
还有你的 samplemean=mean(allsamples); % 平均图片,1 × N
要是你要imshow的话 也要resize 成 48*48才行啊!
 楼主| 发表于 2007-9-14 17:33 | 显示全部楼层

回复 #2 eight 的帖子

谢谢楼上的看法,以上是我最初的设想,是把十幅图都读到一个矩阵中,再求平均,现在我直接读入10幅图像,再求平均即可显示成了,但是图像只是数据的平均,并不是所有图像特征的融合。
现在我用wavemenu里的fuse工具已经可以实现两个图像的融合了,但是十幅图像还不能实现,如果用for循环,量会有影响,不知该怎么对图像的质着手。以下是平均法和融合法分别得到的人脸,看看效果先。

[ 本帖最后由 smiles54 于 2007-9-14 22:08 编辑 ]
小波融合后的平均脸.jpg
相加除2得到的平均脸.jpg
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 06:49 , Processed in 0.082321 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表