确定图像的方向

2024-04-18 07:31:38 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description hereenter image description hereenter image description hereenter image description here

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


Tags: 数据方法图像功能定义像素方向opencv
2条回答

如果你在某个地方有一个随机图像(比如说,你试图将一个特定的图像与你所拥有的图像列表相匹配),你可以尝试对每个图像取随机图像和已知图像列表的差异四次,每次将已知图像旋转90度。无论哪一个更接近于零,都应该是你想要的。在

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

如果你不知道那张随机图像应该是什么,我真的想不出任何办法来弄清楚,除非你确定一团淡蓝色应该是天空。据我所知,一定有一些你知道的事情要做,才能确定什么是up。在

I've looked into feature matching with opencv using the following tutorial, and it works correctly

所以你可以在未知旋转的图像和数据库中的图像之间建立一个有效的匹配?而后一个是已知的旋转(即直立)?在

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

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

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

相关问题 更多 >