85 lines
2.0 KiB
Python
85 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
# @Time : 2022-7-26 0026 15:46
|
|
# @Author : Qing
|
|
# @Email : derighoid@gmail.com
|
|
# @File : Image_Capture.py
|
|
# @Software: PyCharm
|
|
|
|
import matplotlib.pyplot as plt
|
|
import numpy as np
|
|
from PIL import Image
|
|
|
|
# 图片保存的地址文件夹
|
|
root = "E:\\桌面\\Python_Picture_Analysis\\data\\"
|
|
|
|
|
|
# 定义图片剪切函数
|
|
def imgCut(path, left, upper, right, lower):
|
|
"""
|
|
:param path: 图片路径
|
|
:param left:与左边界的距离
|
|
:param upper:与上边界的距离
|
|
:param right:与有边界的距离
|
|
:param lower:与底部边界的距离
|
|
:return:
|
|
"""
|
|
# 获取图片
|
|
img = Image.open(path)
|
|
# print(img.size) Picture Size
|
|
part = (left, upper, right, lower) # 设置剪切的大小
|
|
|
|
# 函数的调用
|
|
cut_img = img.crop(part)
|
|
|
|
# 展示图片
|
|
# 展示原图
|
|
plt.figure("image Cut")
|
|
plt.subplot(121)
|
|
plt.title("origin")
|
|
plt.imshow(img)
|
|
|
|
# 展示剪切后的图片
|
|
plt.subplot(122)
|
|
plt.title("CUT part")
|
|
plt.imshow(cut_img)
|
|
plt.show()
|
|
|
|
# 图片保存
|
|
Image.fromarray(np.uint8(cut_img)).save(root + "picture11.jpg")
|
|
|
|
return cut_img
|
|
|
|
|
|
#定义图片部分替换函数
|
|
def imgReplace(path1, path2, left2, upper2, right2, lower2):
|
|
"""
|
|
:param path1: 被替换图片的路径
|
|
:param path2: 替换的图片路径
|
|
:param left2, upper2, right2, lower2:替换图片的大小
|
|
:return:
|
|
"""
|
|
#图片的获取
|
|
img1 = Image.open(path1) # 被替换图
|
|
img2 = Image.open(path2) #替换图
|
|
|
|
part2 = (left2, upper2, right2, lower2)
|
|
cut_img2 = img2.crop(part2)
|
|
|
|
#调用替换函数
|
|
img1.paste(cut_img2, (10, 50, 250, 250))
|
|
|
|
#定义画布
|
|
plt.figure("picture replace")
|
|
plt.subplot(121)
|
|
plt.imshow(img2)
|
|
plt.title("Origin") # 展示原图
|
|
|
|
plt.subplot(122)
|
|
plt.imshow(img1)
|
|
plt.title("replaced picture") #展示替换后的图
|
|
plt.show()
|
|
|
|
# 保存 替换后的图片
|
|
Image.fromarray(np.uint8(img1)).save(root + 'picture12.jpg')
|
|
return img1
|