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ǔ)充知識(shí):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. 利用CSS3新特性創(chuàng)建透明邊框三角2. html清除浮動(dòng)的6種方法示例3. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)4. vue實(shí)現(xiàn)將自己網(wǎng)站(h5鏈接)分享到微信中形成小卡片的超詳細(xì)教程5. 不要在HTML中濫用div6. 使用css實(shí)現(xiàn)全兼容tooltip提示框7. 詳解CSS偽元素的妙用單標(biāo)簽之美8. JavaScript數(shù)據(jù)類型對(duì)函數(shù)式編程的影響示例解析9. CSS代碼檢查工具stylelint的使用方法詳解10. Vue3使用JSX的方法實(shí)例(筆記自用)
