答案 0 :(得分:2)
您可以基于像素定义裁切边距,并将其分配给新变量:
src_img = cv2.imread(image_file)
crop_img = src_img[h_start : h_end, w_start : w_end].copy()
cv2.imshow("original", src_img )
cv2.imshow("cropped", crop_img)
cv2.waitKey(0)
需要指定新图像末尾的copy(),否则原始图像将被覆盖
答案 1 :(得分:1)
您可以简单地基于像素值创建2个子图像。
您可以使用subimage = image[Y_start : Y_end, X_start : X_end]
进行此操作。
下面的代码给出以下结果:
# load image
img = cv2.imread("map.png")
# create sub images
img_map = img[0:600, 0:600]
img_legend = img[600:705, 0:600]
#show images - to save the images, uncomment the lines below.
cv2.imshow("map", img_map)
cv2.imshow("legend", img_legend)
# cv2.imwrite('map_only.png',img_map)
# cv2.imwrite('legend_only.png',img_legend)
cv2.waitKey(0)
cv2.destroyAllWindows()