首页 > 解决方案 > 从图像中剪下一块不是矩形的(例如梯形),然后将其变成适合板的矩形

问题描述

我将举一个例子我有一张游泳池的照片有一些轨道我只想拍摄三个中间轨道现在将图像切割成空中飞人形状的最佳方法是什么然后如何拍摄这个空中飞人并尝试适合它到两侧(上下)之间的比例相对相似的窗口大小

该示例的图像

标签: pythonopencvimage-processingimutils

解决方案


你可以使用imutils.four_point_transform函数。你可以在这里阅读更多关于它的信息。

基本用法是在精巧的边缘检测图像上查找文档轮廓(同样,您可以使用imutils我链接的包),找到该图像上的轮廓,然后应用于four_point_transform该轮廓。

编辑:如何使用canny边缘检测和four_point_transform

要查找轮廓,您可以使用openCVimutils ,如下所示:

cnts = cv2.findContours(edged_image.copy(), cv2.RETR_EXTERNAL,
        cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)

现在,当您拥有轮廓时,只需遍历并查看哪个是最大的并且有四个点(4 个顶点)。然后只需将图像和轮廓传递给four_point_transform函数,如下所示:

image_2 = four_point_transform(image, biggest_contour)

而已。


推荐阅读