图像的相似度计算????

Y535906616 2009-06-06 07:37:18
我在做(基于肤色的)人脸检测系统,请问图像的相似度计算是用来做什么的?是为后面的二值化做准备吗?
...全文
1077 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzjlv 2010-06-22
  • 打赏
  • 举报
回复
关注人脸识别
kingrain213 2010-06-22
  • 打赏
  • 举报
回复
怎样计算两幅图的相似度啊?谁能给我发个代码参考一下么?谢谢 284069003@qq.com
kondykuang 2009-06-13
  • 打赏
  • 举报
回复
我老师做 Zernike 矩,好像是搞这个的
Y535906616 2009-06-07
  • 打赏
  • 举报
回复
我现在在看数字图像一本书,上面提到将图片先进行相似度计算,再进行二值化处理就可得到人脸区域,我认为:不是直接进行二值化就好了吗??

比如匹配时候定义规则,要求基于一定算法下的相似度必须达到某个阈值才进行匹配,从而减少工作量???
下面是相似度计算原码……

void CLikelyHood::CalLikeHood()
{
int i,j;

for(i=0; i<m_nHeight; i++)
{
for(j=0; j<m_nWidth; j++)
{
double x1,x2;
TCbCr temp = CalCbCr(m_pSourceData[i][j].rgbRed,m_pSourceData[i][j].rgbGreen,m_pSourceData[i][j].rgbBlue);
x1 = temp.Cb-bmean;
x2 = temp.Cr-rmean;
double t;
t = x1*(x1*brcov[1][1]-x2*brcov[1][0])+x2*(-x1*brcov[0][1]+x2*brcov[0][0]);
t /= (brcov[0][0]*brcov[1][1]-brcov[0][1]*brcov[1][0]);
t /= (-2);
m_pLikeliHoodArray[i][j] = exp(t);
}
}

filter(m_pLikeliHoodArray,m_nWidth,m_nHeight);

double max = 0.0;
for(i=0; i<m_nHeight; i++)
for(j=0; j<m_nWidth; j++)
if(m_pLikeliHoodArray[i][j] > max)
max = m_pLikeliHoodArray[i][j];

for(i=0; i<m_nHeight; i++)
{
for(j=0; j<m_nWidth; j++)
{
m_pLikeliHoodArray[i][j] /= max;
}
}

m_bLikeliHoodReady = true;
}
Gothic_girl 2009-06-06
  • 打赏
  • 举报
回复
具体的算法会有很多,各有优劣。

不过研究最多的还是人脸检测相关的,不妨找些论文看看
Gothic_girl 2009-06-06
  • 打赏
  • 举报
回复
相似度是匹配用的,当然,其他的算法中也可能用到。
比如匹配时候定义规则,要求基于一定算法下的相似度必须达到某个阈值才进行匹配,从而减少工作量
Ryanwen 2009-06-06
  • 打赏
  • 举报
回复
你自己做的你不知道它是干什么的? 具体看你是哪个过程用的,算运动矢量或是做人脸匹配都会用到的

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧