openCV中是否有一种方法可以裁剪图像并将未裁剪区域保留为黑色?

Is there a method in openCV that crops an image and leave the uncropped area in black?

大家好,正如标题所说,有什么办法吗?例如,我想裁剪图像的第四象限,其他区域将变成黑色,同时保留其原始大小。目前,我正在获取图像的中心宽度和高度,然后访问像素:

裁剪 = I[centerHeight:,centerWidth:]

但这只是存储了第四象限的裁剪图像。谢谢!

我认为 OpenCV 中没有一个函数可以做到这一点。此功能将解决您的问题。

import numpy as np
def crop_image(img, cx, cy, w, h):
    """
    args:
        cx: x coordinate of center
        cy: y coordinate of center
        w: width of crop 
        h: height of crop
    """
    result = np.zeros(img.shape, dtype=np.uint8)
    result[cx - w//2 :cx + w//2, cy - h//2:cy + h//2] = img[cx - w//2 :cx + w//2, cy - h//2:cy + h//2]
    return result