欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python用代码PS图片

程序员文章站 2022-04-05 19:42:48
...

博主曾经研究过用photoshop来ps图片,但是无奈对这个软件的天生免疫,始终学不会,所以今天就用代码来对图片进行ps。思想和技术很简单,就是利用numpy来找到需要ps的图片的数组,然后把它抠出来,再把要ps的图片的数组给放进去,就能进行简单的ps了。
在这里,我们需要用到三个库,numpy,cv2和matplotlib。

import numpy as np
import cv2
import matplotlib.pyplot as plt
# 我们来ps金三胖同学
sanpang = cv2.imread('./jinzhengen.png')
plt.imshow(sanpang)

python用代码PS图片
接着就是需要导入要ps的图片:

# 导入一个要替换的脸
dog = cv2.imread('dog.jpg')
plt.imshow(dog[:,:,::-1])

python用代码PS图片
接着我们就开始计算图形的面积:

# 识别到人脸的区域, 需要算法
# 算法已经提供好了
#用算法计算人脸范围
face_zone = face_det.detectMultiScale(sanpang)
# 得到一个ndarray,是人脸的区域
face_zone
# face_zone的输出
array([[182,  62,  61,  61]], dtype=int32)
# 裁切狗脸
dog_face = dog[40:180,70:240]
# 压缩狗脸
dog_face2 = cv2.resize(dog_face,(61,61))

现在我们就可以把狗脸放进原图片里面:

for x,y,w,h in face_zone:
    sanpang[y:y+w,x:x+h] = dog_face2
plt.imshow(sanpang[:,:,::-1])

这里我们就能得到经过ps过后的图片了
python用代码PS图片

相关标签: python 图像识别