![]() |
1
38
A. similar question 一年前被问到,有很多回复,包括一个关于图像像素化的回复,我打算建议至少作为一个资格预审步骤(因为它会很快排除非常不相似的图像)。 这里也有一些链接,指向更早期的问题,这些问题有更多的参考资料和很好的答案。 下面是一个使用Scipy的一些想法的实现,使用上面三个图像(分别保存为im1.jpg、im2.jpg、im3.jpg)。最终输出将im1与自身进行比较,作为基线,然后将每个图像与其他图像进行比较。
请注意,与im1相比,im1的得分为42105,与im1相比,im2的得分相差不远,但与其他两个相比,im3的得分远低于该值的一半。您必须对其他图像进行实验,以了解它的性能以及您可以如何改进它。 运行时间很长。。。在我的机器上几分钟。我会尝试一些预过滤,以避免浪费时间比较非常不同的图像,可能与“比较jpg文件大小”技巧在回答其他问题时提到,或与像素化。事实上,你有不同大小的图像使事情变得复杂,但你没有提供足够的信息,说明人们可能期望屠杀的程度,因此很难给出一个考虑到这一点的具体答案。 |
![]() |
2
13
下面是一些带有
如果两个图像相同,则距离为0,它们之间的分歧越大,距离越大。 对我来说,它对照片效果很好,但对文字和徽标等图形效果不佳。 |
![]() |
3
6
你真的需要更好地说明这个问题,但是,看看这5张图片,所有的生物体似乎都以相同的方式定向。如果总是这样,你可以试着做一个 normalized cross-correlation fftconvolve() 函数,您可以自己进行循环互相关:
输出峰值的位置表示两幅图像之间的偏移,峰值的大小表示相似性。应该有一种方法对其进行加权/标准化,以便您可以区分好匹配和差匹配。
|
![]() |
4
6
FFT应该是正常的( numpy has an implementation for 2D matrices 关于性能,如果所有图像的大小相同,如果我记得清楚的话,FFTW包为每个FFT输入大小创建了一个专门的函数,因此您可以通过重用相同的代码获得良好的性能提升。。。我不知道numpy是否基于FFTW,但如果不是,也许你可以试着在那里调查一下。 这里有一个原型。。。你可以玩一下,看看哪个阈值适合你的图像。
另一种方法是模糊图像,然后从两幅图像中减去像素值。如果差值为非零,则可以在每个方向上移动其中一个图像1 px,然后再次进行比较。如果差值小于上一步中的差值,则可以在梯度方向上重复移动并进行减法,直到差值小于某个阈值或再次增加。如果模糊核的半径大于图像的偏移量,则该方法应该有效。 此外,您还可以尝试使用摄影工作流中常用的一些工具来混合多个展览或进行全景拍摄,如 Pano Tools . |
![]() |
5
2
我很久以前就做过一些图像处理课程,记得在匹配时,我通常先将图像灰度化,然后锐化图像的边缘,这样你就只能看到边缘。然后,您(软件)可以移动并减去图像,直到差值最小。 如果该差值大于您设置的树阈值,则图像不相等,您可以继续下一个图像。然后,可以分析具有较小树梢的图像。 我确实认为,你最多可以从根本上缩小可能的匹配,但需要亲自比较可能的匹配,以确定它们是否真的相等。
|
![]() |
6
1
首先,相关性是一种非常耗费CPU的、相当不准确的相似性度量。如果单个像素之间存在差异,为什么不直接求平方和呢? 一个简单的解决方案是,如果最大偏移是有限的:生成所有可能的偏移图像,并找到一个最佳匹配。确保仅对可在所有移位图像中匹配的像素子集计算匹配变量(即相关)。此外,最大偏移量应明显小于图像的大小。 如果你想使用更先进的图像处理技术,我建议你看看 SIFT 这是一个非常强大的方法(理论上无论如何)可以正确匹配图像中的项目,而不受平移、旋转和缩放的影响。 |
![]() |
7
0
我想你可以这样做:
|
![]() |
8
0
为了让导入在我的Ubuntu 16.04(截至2017年4月)上正常工作,我安装了python 2.7,其中包括:
然后我将Snowflake的导入更改为:
8年后,雪花的剧本对我来说真是太棒了! |
![]() |
9
0
提出了一种基于图像直方图的Jaccard相似性索引的解决方案。见: https://en.wikipedia.org/wiki/Jaccard_index#Weighted_Jaccard_similarity_and_distance
然后,您可以比较这两个图像,但在重新缩放到相同大小之后!或者像素计数必须以某种方式进行标准化。我用了这个:
在您的图像上进行测试:
您也可以考虑使用不同的重采样滤波器(如最近或Lanczos),因为它们在改变大小时当然会改变颜色分布。
|
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |