首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python openCV中框周围裁剪图像?

如何在python openCV中框周围裁剪图像?
EN

Stack Overflow用户
提问于 2019-04-17 07:11:38
回答 2查看 4.3K关注 0票数 2

我正在编写一个程序,在OpenCV中裁剪一个矩形周围的图像。我怎么能这样做呢。我还需要它能够把多个矩形裁剪图像。

我试过使用这个教程:https://www.pyimagesearch.com/2016/02/08/opencv-shape-detection/,但我不知道如何获得形状的边框和裁剪它。

我希望得到一个多个图像的输出,其中有三角形的内容的图片。

提前谢谢你

EN

回答 2

Stack Overflow用户

发布于 2019-04-17 22:28:55

我最近刚刚为我的一个项目做了这件事,它工作得很好。

以下是我在Python OpenCV中用来实现此功能的技术:

使用OpenCV的function.

  • Select
  • 在图像上显示图像2点(x,y)。这可以通过使用OpenCV捕获鼠标单击事件来完成。要做到这一点,一种方法是用鼠标单击第一个点所在的位置,同时仍然单击向第二个点移动,并在光标位于正确的点上后松开鼠标单击。这将为您选择2个点。在OpenCV中,您可以使用cv2.EVENT_LBUTTONDOWNcv2.EVENT_LBUTTONUP来实现这一点。您可以使用鼠标捕捉事件编写一个函数来记录这两个点,并将其传递给cv2.setMouseCallback().
  • Once您有了2个坐标,您可以使用OpenCV的cv2.rectangle()函数绘制一个矩形,在该函数中,您可以传递图像、2个点和其他参数,如要绘制的矩形的颜色。
  • 一旦您对这些结果感到满意,您可以使用以下内容裁剪结果:

代码语言:javascript
运行
复制
image = cv2.imread("path_to_image")
cv2.setMouseCallback("image", your_callback_function)
cropped_img = image[points[0][1]:points[1][1], points[0][0]:points[1][0]]
cv2.imshow("Cropped Image", cropped_img)
cv2.waitKey(0)

这是我在一张图片上得到的结果之一。

(原图)之前的

用矩形围绕选定的感兴趣区域进行选择

(裁剪图像)后的

在我自己进一步改进它之前,我首先遵循了这个关于如何实现它的优秀教程,所以您可以从这里开始:Capturing mouse click events with Python and OpenCV。您还应该阅读附加教程底部的注释,以便轻松改进代码。

票数 1
EN

Stack Overflow用户

发布于 2019-04-17 18:53:43

你可以使用'BoundedRect‘函数得到长方体的坐标。然后使用切片操作,提取所需的图像部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55717766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档