python图片剪裁代码(图片按四个点坐标剪裁)

作者:别说话写代码 时间:2021-03-18 21:07:05 

用了两种方法保存图片,opencv和Image,实践证明opencv非常快


from PIL import Image
import os
import cv2
import time
import matplotlib.pyplot as plt
def label2picture(cropImg,framenum,tracker):
 pathnew ="E:\\img2\\"
 # cv2.imshow("image", cropImg)
 # cv2.waitKey(1)
 if (os.path.exists(pathnew + tracker)):
   cv2.imwrite(pathnew + tracker+'\\'+framenum + '.jpg', cropImg,[int(cv2.IMWRITE_JPEG_QUALITY), 100])

else:
   os.makedirs(pathnew + tracker)
   cv2.imwrite(pathnew + tracker+'\\'+framenum + '.jpg', cropImg,[int(cv2.IMWRITE_JPEG_QUALITY), 100])

f = open("E:\\hypotheses.txt","r")
lines = f.readlines()
for line in lines:
 li = line.split(',')
 print(li[0],li[1],li[2],li[3],li[4],li[5])
 filename = li[0]+'.jpg'
 img = cv2.imread("E:\\DeeCamp\\img1\\" + filename)
 crop_img = img[int(li[3][:-3]):(int(li[3][:-3]) + int(li[5][:-3])),
       int(li[2][:-3]):(int(li[2][:-3]) + int(li[4][:-3]))]
 # print(int(li[2][:-3]),int(li[3][:-3]),int(li[4][:-3]),int(li[5][:-3]))
 label2picture(crop_img, li[0], li[1])
# #
# x,y,w,h = 87,158,109,222
# img = cv2.imread("E:\\DeeCamp\\img1\\1606.jpg")
# # print(img.shape)
# crop = img[y:(h+y),x:(w+x)]
# cv2.imshow("image", crop)
# cv2.waitKey(0)
# img = Image.open("E:\\DeeCamp\\img1\\3217.jpg")
#
# cropImg = img.crop((x,y,x+w,y+h))
# cropImg.show()
 # img = Image.open("E:\\deep_sort-master\\MOT16\\train\\try1\\img1\\"+filename)
 # print(int(li[2][:-3]),(int(li[2][:-3])+int(li[4][:-3])), int(li[3][:-3]),(int(li[3][:-3])+int(li[5][:-3])))

# #裁切图片
 # # cropImg = img.crop(region)
 # # cropImg.show()
 # framenum ,tracker= li[0],li[1]
 # pathnew = 'E:\\DeeCamp\\deecamp项目\\deep_sort-master\\crop_picture\\'
 # if (os.path.exists(pathnew + tracker)):
 #   # 保存裁切后的图片
 #   plt.imshow(cropImg)
 #   plt.savefig(pathnew + tracker+'\\'+framenum + '.jpg')
 # else:
 #   os.makedirs(pathnew + tracker)
 #   plt.imshow(cropImg)
 #   plt.savefig(pathnew + tracker+'\\'+framenum + '.jpg')

补充知识:python实现固定区域截图,实现录屏截图

1、实现固定区域截图及保存

如果不设置区域默认是全屏保存


from PIL import ImageGrab

# 参数说明
# 第一个参数 开始截图的x坐标
# 第二个参数 开始截图的y坐标
# 第三个参数 结束截图的x坐标
# 第四个参数 结束截图的y坐标
bbox = (760, 0, 1160, 1080)
im = ImageGrab.grab(bbox)

# 参数 保存截图文件的路径
im.save('zy.png')

2、实现屏幕的视频录制

可以用上面程序的bbox设置一下录屏区域


from time import sleep
from PIL import ImageGrab

m=int(input("输入录屏几分钟:"))
m=m*60
n=1
while n<m:
 sleep(0.02)
 im=ImageGrab.grab()
 local=(r"%s.jpg"%(n))
 im.save(local,'jpeg')
 n=n+1

来源:https://blog.csdn.net/qq_21997625/article/details/81453690

标签:python,图片,剪裁,坐标
0
投稿

猜你喜欢

  • Sanic框架请求与响应实例分析

    2023-05-26 00:07:00
  • python使用pygame实现笑脸乒乓球弹珠球游戏

    2021-07-26 09:49:47
  • python神经网络使用Keras构建RNN训练

    2021-07-19 21:12:15
  • JavaScript 中为 Date 类实现 DateAdd 方法

    2008-04-03 16:19:00
  • JS实现淘宝支付宝网站的控制台菜单效果

    2023-07-22 22:26:12
  • np.dot()函数的用法详解

    2023-06-14 02:12:21
  • python图像填充与裁剪/resize的实现代码

    2022-07-12 07:49:15
  • Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法

    2023-03-01 14:24:38
  • Python函数和模块的使用详情

    2023-10-11 13:51:20
  • Python包argparse模块常用方法

    2023-04-03 13:30:58
  • 举例详解Python中smtplib模块处理电子邮件的使用

    2023-10-08 04:46:14
  • Python读取excel指定列生成指定sql脚本的方法

    2021-05-06 19:11:13
  • python 合并表格详解

    2023-09-08 16:03:48
  • Django Channels 实现点对点实时聊天和消息推送功能

    2022-04-03 10:37:56
  • asp解决防止表单重复提交的方法

    2007-10-19 18:40:00
  • python网络爬虫精解之pyquery的使用说明

    2021-05-28 13:01:19
  • python装饰器代替set get方法实例

    2023-01-25 15:40:37
  • Python unittest单元测试框架的使用

    2021-11-26 15:56:37
  • python 对key为时间的dict排序方法

    2021-03-22 17:09:59
  • Jupyter notebook运行Spark+Scala教程

    2023-04-18 08:48:56
  • asp之家 网络编程 m.aspxhome.com