2013-12-17 117 views
2

我试图实现朴素贝叶斯最近邻(NBNN)的图像分类。在算法中,它要求属于不同图像的两个像素之间的欧几里德距离。欧几里德距离两个像素,每个属于不同的图像

我有1)m×40,000矩阵(其中40,000是一个图像中的像素数)中的一组m图像和2)n乘40,000的另一组n图像矩阵。

1)是训练集,2)是验证集。

为了让我应用NBNN,从我的理解中,我需要找到2)中的每个像素与1)中相应像素之间的欧几里德距离。

我的问题是,给出两个灰度值,一个来自1),另一个来自2),我将如何找到它们之间的欧几里德距离以应用k-NN?

+0

只是一个快速的实际问题:距离的输出矩阵的预期维数是多少? – chappjc

+0

从我对朴素贝叶斯最近邻的理解中,应该是40,000乘以40,000的测试图像和40,000乘以m的训练集。从那里,我会寻找每个像素(列)的最小值来找到最近的邻居。请让我知道,如果我不正确地理解这一点。 – viviboox3

+0

@ viviboox3,我也试图在MATLAB中使用这个方法。我已经阅读了博曼关于NBNN的论文,但我仍然很难理解这种方法。我认为NBNN的全部要点是提出类描述符,然后计算图像到类的距离。这是你在这里做的?另外,如果你能指出我对算法的一个很好的解释,我将不胜感激! –

回答

3

设x,y为两个灰度200×200的图像。像素级别为x1,x2,...x40000y1, y2,...y40000。 x和y之间的欧氏距离是d(x,y)=sqrt(sum_i((xi-yi)^2))

0

我将把在wikipedia

给出的符号和定义你有一维数据,从而p=(p1)q=(q1)e(p,q)=sqrt((p1-q1)^2)=abs(p1-q1)

对于1d情况,欧几里德距离是灰度值的绝对差值。

+0

因此,对于一维图像,像素的位置并不重要? m乘40,000矩阵我对应于m图像,每个200×200像素,因此总像素= 40,000。 – viviboox3

+0

也许我误解了这个问题,我回答了如何计算颜色值的欧氏距离。您也可以将欧式距离应用于职位。 – Daniel

+0

我试图在图像集上实现knn算法来分类情感。如果我有一组用于训练的图像和一幅用于测试的图像,则需要找到最小化每个像素之间距离的训练示例。我的图像是200×200。我仍然可以将1d情况下的欧式距离应用于此吗?如果我的问题不清楚,我很抱歉。谢谢您的意见。 – viviboox3