欢迎光临散文网 会员登陆 & 注册

使用OpenCV和Python(正确)旋转图像(P0,前情提要)

2022-02-06 14:09 作者:闲予1217  | 我要投稿

让我告诉你一个尴尬的故事,六年前我在研究生院浪费了三周的研究时间。

那是我第二学期课程的结束。

我提前参加了所有的考试,这学期的所有项目都已经提交了。

由于我在学校的义务基本上是零,我开始尝试(自动)在图像中识别处方药,这是我知道的一两件事(但那时我才刚刚开始研究)。

当时,我的研究目标是找到并确定以旋转不变的方式可靠量化药丸的方法。无论药丸是如何旋转的,我都希望输出的特征向量(大致)相同(由于照明条件、相机传感器、浮点错误等原因,在现实应用中,特征向量永远不会完全相同)。

第一周之后,我取得了惊人的进步。

我能够从我的药片数据集中提取特征,对它们进行索引,然后识别我的药片测试集,不管它们是如何定向的…

……然而,有一个问题:

我的方法只适用于圆形药片——对于长方形药片,我得到了完全没有意义的结果。

怎么可能?

我绞尽脑汁想得到解释。

我的特征提取算法的逻辑有缺陷吗?

我是否没有正确匹配功能?

或者这完全是另一回事……比如我的图像预处理问题。

作为一名研究生,我可能会羞于承认这一点,但问题是后者:

我搞砸了。

事实证明,在图像预处理阶段,我的图像旋转不正确。

由于圆形药丸的长宽比近似为正方形,因此旋转缺陷对它们来说不是问题。在这里,你可以看到一个圆形药丸旋转了360度,没有任何问题:


旋转一个圆形药丸并没有发现任何明显的问题。

但对于长方形药丸,它们会在旋转过程中被“切断”,如下所示:


然而,使用OpenCV的标准CV2旋转长方形药丸。获取旋转矩阵2d和CV2。翘曲仿射函数给我带来了一些不太明显的问题。

本质上,我只是在量化旋转的长方形药丸的一部分;因此我得出了奇怪的结果。


我花了三个星期的时间,在圣诞节假期的一部分时间里,我的头撞在墙上试图诊断这个病毒——但当我意识到这是因为我对CV2的疏忽时,我感到非常尴尬。旋转功能。

你看,输出图像的大小需要调整,否则,我的图像的角会被切掉。

我是如何做到这一点,并将错误永远压扁的?

要了解如何使用OpenCV旋转图像,以便包含整个图像,并且不切断任何图像,敬请期待。

以下是原文链接:

https://www.pyimagesearch.com/2017/01/02/rotate-images-correctly-with-opencv-and-python/

使用OpenCV和Python(正确)旋转图像(P0,前情提要)的评论 (共 条)

分享到微博请遵守国家法律