使用OpenCV和Python(正确)旋转图像(P3)
用OpenCV和Python修复旋转图像“截断”问题
让我们回到我最初的旋转长方形药丸的问题,以及我如何使用.rotate_bound来解决这个问题(尽管当时我还没有创建imutils Python包——它只是帮助文件中的一个实用函数)。
我们将使用以下药丸作为示例图像:

首先,打开一个新文件并将其命名为rotate_pills.py。然后插入以下代码:
第3-6行导入我们所需的Python包。同样,在继续之前,请确保已安装和/或升级imutils Python包。
然后在第9-12行解析命令行参数。就像博客文章开头的例子一样,我们只需要一个开关:--image,即输入图像的路径。
接下来,我们从磁盘加载药丸图像,并通过将其转换为灰度、模糊和检测边缘对其进行预处理:
执行这些预处理功能后,我们的药丸图像现在如下所示:

药丸的轮廓清晰可见,所以让我们应用轮廓检测来找到药丸的轮廓:
我们现在准备从图像中提取药丸ROI:
首先,我们确保在边缘图(第26行)中至少找到一个等高线。
如果我们至少有一个轮廓,我们为第30行和第31行上的最大轮廓区域构造一个遮罩。
我们的面具是这样的:

未完待续...