我正在编写一个在OpenCV中裁剪矩形周围图像的程序。请问如何实现?我还需要将多个矩形转换为裁剪后的图像。
我尝试使用了这篇教程:https://www.pyimagesearch.com/2016/02/08/opencv-shape-detection/,但我不知道如何获取形状的边界并在其周围裁剪。
我希望得到多个图片的输出,这些图片包含三角形内容的图像。
谢谢!
我正在编写一个在OpenCV中裁剪矩形周围图像的程序。请问如何实现?我还需要将多个矩形转换为裁剪后的图像。
我尝试使用了这篇教程:https://www.pyimagesearch.com/2016/02/08/opencv-shape-detection/,但我不知道如何获取形状的边界并在其周围裁剪。
我希望得到多个图片的输出,这些图片包含三角形内容的图像。
谢谢!
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)
以下是我在其中一张图片上得到的结果之一。
我开始是按照这个优秀的教程实现它,然后再自己进一步改进,所以你可以从这里开始:使用Python和OpenCV捕获鼠标单击事件。您还应该阅读所附教程底部的评论,以轻松改进代码。
您可以使用“BoundedRect”函数获取框的坐标。然后使用切片操作,提取所需图像的部分。