我正在编写一个程序,在OpenCV中裁剪一个矩形周围的图像。我怎么能这样做呢。我还需要它能够把多个矩形裁剪图像。
我试过使用这个教程:https://www.pyimagesearch.com/2016/02/08/opencv-shape-detection/,但我不知道如何获得形状的边框和裁剪它。
我希望得到一个多个图像的输出,其中有三角形的内容的图片。
提前谢谢你
发布于 2019-04-17 22:28:55
我最近刚刚为我的一个项目做了这件事,它工作得很好。
以下是我在Python OpenCV中用来实现此功能的技术:
使用OpenCV的function.
cv2.EVENT_LBUTTONDOWN和cv2.EVENT_LBUTTONUP来实现这一点。您可以使用鼠标捕捉事件编写一个函数来记录这两个点,并将其传递给cv2.setMouseCallback().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)这是我在一张图片上得到的结果之一。
(原图)之前的:

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

(裁剪图像)后的:

在我自己进一步改进它之前,我首先遵循了这个关于如何实现它的优秀教程,所以您可以从这里开始:Capturing mouse click events with Python and OpenCV。您还应该阅读附加教程底部的注释,以便轻松改进代码。
发布于 2019-04-17 18:53:43
你可以使用'BoundedRect‘函数得到长方体的坐标。然后使用切片操作,提取所需的图像部分。
https://stackoverflow.com/questions/55717766
复制相似问题