我应该使用什么值来生成haar小波?

我目前有一个Java程序,它将获取图像中每个像素的rgb值。我还有一种方法可以在2d值矩阵上计算Haar小波。但是我不知道我应该为计算Haar小波的方法赋予哪些值。我应该平均每个像素的rgb值和计算机上的haar小波吗?或者只是使用r,g,b中的1。 我正在尝试为图像创建一个独特的指纹。我在别处读到这是一个很好的方法,因为我可以采用2个小波的点积来看看图像之间的相似程度。 请让我知道我应该计算Haar小波的值。 谢谢 枷锁     
已邀请:
您应该将R / G / B分量视为不同的图像:为R,G和B各创建一个矩阵,然后将小波应用于其中的一部分。 然后,您从3个小波压缩通道重建R / G / B图像,最后将它们组合成3通道位图。     
由于eznme没有回答你的问题(你想要指纹,他解释压缩和重建),这里有一个你经常会遇到的方法: 您可以分离颜色和亮度信息(色度和亮度),并对它们进行不同的称量。有时候你甚至会丢掉色度,只使用亮度部分。这会显着减小指纹的大小(〜三倍),并考虑我们如何感知图像 - 主要是通过局部亮度,而不是绝对颜色。作为奖励,您可以获得有关图像颜色处理的强大功能。 分离可以以不同的方式进行,例如,将RGB图像转换为YUV或YIQ颜色空间。如果您只想保留亮度分量,则这两个颜色空间是等效的。但是,它们对色度的编码方式不同。 这是来自RGB的亮度Y的线性变换: Y = 0.299 * R + 0.587 * G + 0.114 * B. 当你看一下数学时,你会注意到我们除了创建一个灰度图像之外别无其他 - 考虑到当它们在数值上相等时,我们认为绿色比红色更亮,而红色比蓝色更亮。 如果你想保留一些色度信息,为了尽可能简洁你的指纹,你可以降低两个U,V分量(每个实际上是8位)的分辨率。因此,您可以通过将它们的信息减少到4位并将它们与移位运算符组合(不知道在java中如何工作)将它们加入到一个8位值中。在最终的指纹距离计算(您提到的点积)中,与亮度相比,色度应该更轻。     

要回复问题请先登录注册