python - 从图像中剪下一块不是矩形的(例如梯形),然后将其变成适合板的矩形
问题描述
我将举一个例子我有一张游泳池的照片有一些轨道我只想拍摄三个中间轨道现在将图像切割成空中飞人形状的最佳方法是什么然后如何拍摄这个空中飞人并尝试适合它到两侧(上下)之间的比例相对相似的窗口大小
解决方案
你可以使用imutils.four_point_transform
函数。你可以在这里阅读更多关于它的信息。
基本用法是在精巧的边缘检测图像上查找文档轮廓(同样,您可以使用imutils
我链接的包),找到该图像上的轮廓,然后应用于four_point_transform
该轮廓。
编辑:如何使用canny
边缘检测和four_point_transform
要查找轮廓,您可以使用openCV和imutils ,如下所示:
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)
而已。
推荐阅读
- c - 最简单的 C 运算符的问题
- r - 在两个数据集的 facet Wrapped ggplot 上查找多个峰值密度
- node.js - mapbox gl js 的 CSP,使用 dockerize nodejs 和 nginx 创建的应用程序
- javascript - 可插件或模块化的 reactjs
- javascript - 反应路由器dom的链接不起作用(找不到页面)
- python - 使用漂亮的汤从网页中的 url 抓取数据。Python
- reactjs - 从firebase获取数据时,表体未在反应中更新
- angular - 获取对象值的打字稿问题
- react-admin - 如何使用 React-Admin 在 List 组件中创建自定义记录操作按钮?
- flutter - 如何用颤振创建像 youtube 这样的迷你播放器?