python圖片剪裁代碼(圖片按四個點坐標剪裁)
用了兩種方法保存圖片,opencv和Image,實踐證明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項目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’)
補充知識:python實現(xiàn)固定區(qū)域截圖,實現(xiàn)錄屏截圖
1、實現(xiàn)固定區(qū)域截圖及保存
如果不設(shè)置區(qū)域默認是全屏保存
from PIL import ImageGrab # 參數(shù)說明# 第一個參數(shù) 開始截圖的x坐標# 第二個參數(shù) 開始截圖的y坐標# 第三個參數(shù) 結(jié)束截圖的x坐標# 第四個參數(shù) 結(jié)束截圖的y坐標bbox = (760, 0, 1160, 1080)im = ImageGrab.grab(bbox) # 參數(shù) 保存截圖文件的路徑im.save(’zy.png’)
2、實現(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圖片剪裁代碼(圖片按四個點坐標剪裁)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Android table布局開發(fā)實現(xiàn)簡單計算器2. IntelliJ IDEA安裝插件的方法步驟3. 理解PHP5中static和const關(guān)鍵字4. php模擬實現(xiàn)斗地主發(fā)牌5. spring acegi security 1.0.0 發(fā)布6. MyBatis中的JdbcType映射使用詳解7. vue 使用localstorage實現(xiàn)面包屑的操作8. Python random庫使用方法及異常處理方案9. .Net Core使用Coravel實現(xiàn)任務調(diào)度的完整步驟10. Vuex localStorage的具體使用

網(wǎng)公網(wǎng)安備