【问题标题】:Determine The Orientation Of An Image确定图像的方向
【发布时间】:2016-01-14 18:02:13
【问题描述】:

我正在尝试确定以下图像的方向。给定一个 140x140 到 150X150 像素之间的随机图像,没有 EXIF 数据。有没有一种方法可以将每个图像定义为 0、90、180 或 270 度,以便当我获得特定方向的图像时,我可以将其与我的预定义图像匹配?我已经使用以下tutorial 研究了与 opencv 的特征匹配,它可以正常工作。无论其方向如何,都将图像识别为相同,但我不知道如何区分它们。

【问题讨论】:

  • 如果您不知道图像应该是什么样子?不。您可以尝试一些启发式方法,例如搜索蓝色/白色以找到天空并假设它位于图像的顶部,但这些方法可能效果不佳;)
  • 这张图片是否旋转了? images.wisegeek.com/abstract-art.jpg
  • 我应该清楚的。我保存了 4 张图片,我想将新的随机图片与列表进行匹配以确定匹配。
  • 试试 EXIF 库。它会给你图像的方向。

标签: python opencv scikit-learn


【解决方案1】:

我已经使用以下教程研究了与 opencv 的特征匹配,它可以正常工作

那么您可以在未知旋转的图像和数据库中的图像之间建立有效匹配吗?而后者是已知的旋转(即直立)?

在这种情况下,您可以计算一个变换矩阵:

  • 定义全平面变换的单应性(使用cv::findHomography
  • 或表示平移、旋转和缩放的仿射变换,因此似乎最适合您的需求(使用cv::estimateRigidTransform 和fullAffine=true)。你可以找到更多关于仿射变换here

如果您没有任何已知图像,那么这项任务在数学上似乎无法解决,但您可以使用类似基于人工神经网络的启发式算法,这似乎是一个研究密集型项目。

【讨论】:

    【解决方案2】:

    如果您在某处有随机图像(例如,您试图将某个图像与您拥有的图像列表匹配),您可以尝试将随机图像与已知图像列表的差异四次每个图像,每次将已知图像旋转 90 度。无论哪个更接近零,都应该是您想要的。

    如果您的新图像和图像列表的图像大小相同,您也可以只比较关键点距离差异(如果图像匹配但所有关键点都顺时针旋转了一个象限彼此相距 90 度等)。

    如果您不知道该随机图像应该是什么,我真的想不出任何方法来解决这个问题,除非您确定一团浅蓝色应该是天空。据我所知,为了确定什么是 up,必须有一些你知道 up 的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-31
      • 2018-12-31
      • 2016-04-16
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      相关资源
      最近更新 更多