本文介绍怎样使用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)
不同图片
不同图片如果还用上述方法,会报错: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)
文章评论