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