python圖片剪裁代碼(圖片按四個(gè)點(diǎn)坐標(biāo)剪裁)
用了兩種方法保存圖片,opencv和Image,實(shí)踐證明opencv非常快
from PIL import Imageimport osimport cv2import timeimport matplotlib.pyplot as pltdef 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:DeeCampimg1' + 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:DeeCampimg11606.jpg')# # print(img.shape)# crop = img[y:(h+y),x:(w+x)]# cv2.imshow('image', crop)# cv2.waitKey(0)# img = Image.open('E:DeeCampimg13217.jpg')## cropImg = img.crop((x,y,x+w,y+h))# cropImg.show() # img = Image.open('E:deep_sort-masterMOT16traintry1img1'+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:DeeCampdeecamp項(xiàng)目deep_sort-mastercrop_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’)
補(bǔ)充知識:python實(shí)現(xiàn)固定區(qū)域截圖,實(shí)現(xiàn)錄屏截圖
1、實(shí)現(xiàn)固定區(qū)域截圖及保存
如果不設(shè)置區(qū)域默認(rèn)是全屏保存
from PIL import ImageGrab # 參數(shù)說明# 第一個(gè)參數(shù) 開始截圖的x坐標(biāo)# 第二個(gè)參數(shù) 開始截圖的y坐標(biāo)# 第三個(gè)參數(shù) 結(jié)束截圖的x坐標(biāo)# 第四個(gè)參數(shù) 結(jié)束截圖的y坐標(biāo)bbox = (760, 0, 1160, 1080)im = ImageGrab.grab(bbox) # 參數(shù) 保存截圖文件的路徑im.save(’zy.png’)
2、實(shí)現(xiàn)屏幕的視頻錄制
可以用上面程序的bbox設(shè)置一下錄屏區(qū)域
from time import sleepfrom PIL import ImageGrabm=int(input('輸入錄屏幾分鐘:'))m=m*60n=1while n<m: sleep(0.02) im=ImageGrab.grab() local=(r'%s.jpg'%(n)) im.save(local,’jpeg’) n=n+1
以上這篇python圖片剪裁代碼(圖片按四個(gè)點(diǎn)坐標(biāo)剪裁)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python 如何在 Matplotlib 中繪制垂直線2. bootstrap select2 動(dòng)態(tài)從后臺Ajax動(dòng)態(tài)獲取數(shù)據(jù)的代碼3. ASP常用日期格式化函數(shù) FormatDate()4. python中@contextmanager實(shí)例用法5. html中的form不提交(排除)某些input 原創(chuàng)6. CSS3中Transition屬性詳解以及示例分享7. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼8. 如何通過python實(shí)現(xiàn)IOU計(jì)算代碼實(shí)例9. 開發(fā)效率翻倍的Web API使用技巧10. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式
