小编Nic*_*ick的帖子

识别相似图像的好方法?

我在PHP中开发了一种简单快速的算法来比较图像的相似性.

其快速(800x600图像每秒约40个)以及未经优化的搜索算法可以在22分钟内完成3,000张图像,将每张图像与其他图像进行比较(3 /秒).

基本概述是获取图像,将其重新调整为8x8,然后将这些像素转换为HSV.然后将Hue,Saturation和Value截断为4位,它变成一个大的十六进制字符串.

比较图像基本上沿着两个字符串,然后添加它找到的差异.如果总数低于64,那么它的图像相同.不同的图像通常在600 - 800左右.低于20和极其相似.

我可以使用这个型号有什么改进吗?我还没有看到不同组件(色调,饱和度和值)与比较的相关性.顺化可能很重要,但其他人呢?

为了加快搜索速度,我可能会将每个部分的4位分成两半,并将最重要的位先放入,这样如果它们检查失败,则根本不需要检查lsb.我不知道一种有效的方法来存储这样的位,但仍然允许它们被轻松搜索和比较.

我一直在使用3000张照片的数据集(大多数是独一无二的)并没有任何误报.它完全不受调整大小和相当的亮度和对比度变化的抵抗力.

php gd image computer-vision content-based-retrieval

16
推荐指数
1
解决办法
1万
查看次数

带有HTML5画布中间孔的多边形

使用<canvas>标签我需要能够在多边形中绘制一个洞.

现在我有一些非常简单的东西,使用beginPath()然后为每个点执行lineTo().然后填充fill().

我看不到有任何方法可以将填充的多边形与未填充的中间区域相比,例如甜甜圈.我不是做甜甜圈,但它适合这个例子.

有什么我想念的吗?我宁愿不画它完全填充然后必须重绘中间.

html5 geometry html5-canvas

7
推荐指数
3
解决办法
8102
查看次数

反转sin和cos变换

我正在使用基本的sin和cos操作2D地图非常成功地给出了3d透视图.

我遇到的问题是我试图找到视口中可见的内容.有效地进行反向转换,输出为[0,0]和[宽度,高度],我想知道我的地图上的那些点位于何处.

我已经到了试图扭转的地步:

display_x = (source_x * cos(z)) + (source_y * sin(z))
display_y = (source_y * cos(z)) - (source_x * sin(z))
Run Code Online (Sandbox Code Playgroud)

如果我知道display_xdisplay_ysource_xsource_y是未知的,我怎么能解决未知是什么?我的联立方程知识有点生疏.

math trigonometry

1
推荐指数
1
解决办法
997
查看次数