Python使用OpenCV将小尺寸图片嵌入白色或黑色背景
本文介绍如何使用Python和OpenCV库将小尺寸图片嵌入到较大的白色或黑色背景中。通过创建指定尺寸的空白画布,并将原图像素值复制到对应区域,实现图片居中或左上角嵌入的效果。代码示例展示了白色背景和黑色背景两种场景的具体实现方法,适用于模型输入尺寸标准化等场景。
Python使用OpenCV将小尺寸图片嵌入白色或黑色背景
本文介绍如何将一张尺寸较小的图片嵌入到一张尺寸较大的白色或黑色背景图片中,前提条件是原图的长宽必须小于背景图片的尺寸。例如,原图的尺寸为长192像素、宽64像素。

嵌入白色背景的实现
首先演示将图片嵌入到尺寸为224x224像素的白色背景中。
import cv2
import numpy as np
def img_resize_to_target_white(image):
target = np.ones((224,224),dtype=np.uint8)*255
ret = cv2.cvtColor(target, cv2.COLOR_GRAY2BGR)
h = image.shape[0]
w = image.shape[1]
for i in range(224):
for j in range(224):
if(i < h) and (j < w):
ret[i, j, 0] = image[i, j, 0]
ret[i, j, 1] = image[i, j, 1]
ret[i, j, 2] = image[i, j, 2]
else:
ret[i, j, 0] = 255
ret[i, j, 1] = 255
ret[i, j, 2] = 255
return ret
if __name__ == '__main__':
image = cv2.imread('/home/yasin/桌面/test.png')
img_new_white = img_resize_to_target_white(image)
cv2.imshow("img_new_white", img_new_white)
cv2.waitKey()
运行上述代码后的结果如下所示:

嵌入黑色背景的实现
接着演示将图片嵌入到尺寸为224x224像素的黑色背景中。
import cv2
def img_resize_to_target_black(image):
target = np.zeros((224,224),dtype=np.uint8)
bgr_img = cv2.cvtColor(target, cv2.COLOR_GRAY2BGR)
h = image.shape[0]
w = image.shape[1]
for i in range(h):
for j in range(w):
bgr_img[i, j, 0] = image[i, j, 0]
bgr_img[i, j, 1] = image[i, j, 1]
bgr_img[i, j, 2] = image[i, j, 2]
return bgr_img
if __name__ == '__main__':
image = cv2.imread('/home/yasin/桌面/test.png')
img_new_black = img_resize_to_target_black(image)
cv2.imshow("img_new_black", img_new_black)
cv2.waitKey()
运行上述黑色背景处理代码后的结果如下所示:

以上即为使用Python实现将小图片嵌入较大白色或黑色背景图片的完整方法,希望能为读者提供参考。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













