Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在图像中找到相似的(大的)模式_C++_Opencv_Image Processing - Fatal编程技术网

C++ 在图像中找到相似的(大的)模式

C++ 在图像中找到相似的(大的)模式,c++,opencv,image-processing,C++,Opencv,Image Processing,我有重复模式的图像。我想找到基于相似模式的相似图像 这些图案由十字架、三角形、正方形组成,它们组合在一起形成由这些“原始形状”构成的更复杂的结构。例如,想象一个由三角形或六边形等组成的十字架 这些装饰品可以在壁纸、地毯、基里姆、羊毛衫甚至一些绘画中找到 维基百科的一个例子是 我的典型应用是找到,比如说,有相似图案的毛衣。暂时忽略颜色 我尝试用ScFT描述符(使用C++和OpenCV)提取并在两个图像之间进行匹配。但是,它们匹配微小区域,例如六边形和三角形的顶点,但理想情况下,我希望匹配三角形和矩

我有重复模式的图像。我想找到基于相似模式的相似图像

这些图案由十字架、三角形、正方形组成,它们组合在一起形成由这些“原始形状”构成的更复杂的结构。例如,想象一个由三角形或六边形等组成的十字架

这些装饰品可以在壁纸、地毯、基里姆、羊毛衫甚至一些绘画中找到

维基百科的一个例子是

我的典型应用是找到,比如说,有相似图案的毛衣。暂时忽略颜色

<>我尝试用ScFT描述符(使用C++和OpenCV)提取并在两个图像之间进行匹配。但是,它们匹配微小区域,例如六边形和三角形的顶点,但理想情况下,我希望匹配三角形和矩形的实际形状

如果我缩小图片的比例,效果会更好一些,但我仍然感觉到我需要一种不同于SIFT和friends的方法


有人能为这类问题提出其他方法吗?

如果你事先知道你要寻找的模式,你可以做老式的模板匹配。它可能不像深度学习技术那样流行,但对于受约束的问题是有效的

  • 加载你的N个模板
  • 加载要测试的映像
  • 正常化图像和模板(可能包括 转换为灰度和一些直方图和白平衡 均衡化)
  • 为每个模板创建一些M扰动(即, 不同的比例、旋转和透视变换)
  • 在NxM模板和图像之间创建模板

  • 由于只需对图像进行一次2D FFT,因此可以通过执行稍微优化上述操作。您还可以预先计算和存储干扰,或者更好的方法是:存储它们的傅里叶变换。

    如果您有一个要匹配的大型图像数据集,您可以训练一个CNN。我有一个非常大的数据集,但它没有标记。有没有自我组织的CNN风格?谢谢你的提示。也许我可以从每幅图像中随机剪切N个小补丁,然后尝试用模板将它们与其他图像匹配。匹配的数量会显示相似性。无需为训练集创建任何标签。让我担心的是上面13000张图片的计算负担。