我正在开发一个程序来在OpenCV中围绕一个矩形裁剪图像。我怎么能这样做呢。我还需要能够将多个矩形变成裁剪图像。
我已经尝试过使用本教程:https://www.pyimagesearch.com/2016/02/08/opencv-shape-detection/,但我不知道如何获得形状的边框并围绕它进行裁剪。
我希望获得多个图像的输出,其中包含三角形内容的图片。
先感谢您
您可以使用“BoundingRect”功能获取框的坐标。然后使用切片操作,提取所需的图像部分。
我刚刚为我的一个项目完成了这项工作,并且完美无缺。
这是我用于在Python OpenCV中实现它的技术:
cv2.imshow()
函数显示图像。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。您还应该阅读附加教程底部的注释,以便轻松改进代码。