Python cv2实现贴图

本文介绍怎样使用python cv2把小图片贴在大图片指定位置

同一图片

在一张图片上剪下一小块贴在该图片的指定位置,可以直接使用cv2实现

安葬cv2:pip install opencv-python

import cv2
img = cv2.imread('demo.jpg')
img_block = img[200:800, 300:900] #切一小块,范围是[上:下, 左:右]
img[0:600, 0:600] = img_block #放在指定位置
cv2.imshow('image', img)
cv2.waitKey(0)
《Python cv2实现贴图》

不同图片

不同图片如果还用上述方法,会报错:could not broadcast input array from shape (0,105,3) into shape (200,200,3)

原因以及解决方案就不研究了

这里使用cv2和PIL的Image(我这里主要使用cv2,PIL只用作贴图片)

安装cv2和PIL:pip install opencv-python pillow

import cv2
from PIL import Image
img1 = cv2.imread('im1.jpg')
img2 = cv2.imread('im2.jpg')
img1_pil = Image.fromarray(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)) #转换为PIL格式
img2_pil = Image.fromarray(cv2.cvtColor(img2, cv2.COLOR_BGR2RGB))
img1_pil.paste(img2_pil, (800, 100)) #img2贴在img1指定位置,位置是(左,上)
img = cv2.cvtColor(numpy.asarray(img1_pil), cv2.COLOR_RGB2BGR) #PIL转换为cv2格式
cv2.imshow('image', img)
cv2.waitKey(0)
《Python cv2实现贴图》

发表评论

电子邮件地址不会被公开。 必填项已用*标注