gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:46 25 4
gpt4 key购买 nike

我正在开发一个程序,用于在 OpenCV 中围绕矩形裁剪图像。我怎么能这样做呢。我还需要它能够将多个矩形变成裁剪后的图像。

我试过使用本教程:https://www.pyimagesearch.com/2016/02/08/opencv-shape-detection/ , 但我不知道如何获取形状的边界并在其周围裁剪。

我希望得到多张图片的输出,其中包含三角形内容的图片。

提前致谢

最佳答案

我最近刚刚为我的一个项目完成了这项工作,而且效果很好。

这是我在 Python OpenCV 中用来实现它的技术:

  • 使用 OpenCV 的 cv2.imshow() 函数显示图像。
  • 在图像上选择 2 个点 (x, y)。这可以通过使用 OpenCV 捕获鼠标点击事件来完成。执行此操作的一种方法是在第一个点所在的位置单击鼠标,同时仍然单击向第二个点移动,一旦光标位于正确的点上就松开鼠标单击。这为您选择了 2 个点。在 OpenCV 中,您可以使用 cv2.EVENT_LBUTTONDOWNcv2.EVENT_LBUTTONUP 执行此操作。您可以编写一个函数来记录使用鼠标捕获事件的两个点,并将其传递给 cv2.setMouseCallback()
  • 获得 2 个坐标后,您可以使用 OpenCV 的 cv2.rectangle() 函数绘制一个矩形,您可以在其中传递图像、2 个点和其他参数,例如矩形的颜色要绘制的矩形。
  • 一旦您对这些结果感到满意,您可以使用如下方式裁剪结果:
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)

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

之前(原始图像): before

选择的感兴趣区域周围画了一个矩形: roi selected

之后(裁剪图像): after

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

关于python - 如何在 python openCV 中裁剪框周围的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55717766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com