python图片旋转脚本_封装了深度学习中几个图片数据增强的脚本-python平移、旋转与调整大小...
文章目錄
平移
代碼
演示
刪除
代碼
演示
旋轉
代碼
演示
平移
代碼
可以調整以下的代碼,只進行某一方向的平移;也可修改divisor調整平移的比例因子。
import cv2
import numpy as np
from PIL import Image
from matplotlib import pyplot as plt
import os, sys
def transSave(picPath, divisor=0.05):
img = cv2.imread(picPath)
rows, cols = img.shape[:2]
# 計算偏移量
deltaX = rows * divisor
deltaY = cols * divisor
M1 = np.float32([[1, 0, deltaX], [0, 1, 0]])
M2 = np.float32([[1, 0, -deltaX], [0, 1, 0]])
M3 = np.float32([[1, 0, 0], [0, 1, deltaY]])
M4 = np.float32([[1, 0, 0], [0, 1, -deltaY]])
# 用仿射變換實現平移
img_s1 = cv2.warpAffine(img, M1, (cols, rows))
img_s2 = cv2.warpAffine(img, M2, (cols, rows))
img_s3 = cv2.warpAffine(img, M3, (cols, rows))
img_s4 = cv2.warpAffine(img, M4, (cols, rows))
# 保存圖片
cv2.imwrite(picPath.replace('.jpg', '_1.jpg'), img_s1)
cv2.imwrite(picPath.replace('.jpg', '_2.jpg'), img_s2)
cv2.imwrite(picPath.replace('.jpg', '_3.jpg'), img_s3)
cv2.imwrite(picPath.replace('.jpg', '_4.jpg'), img_s4)
if __name__ == '__main__':
rootdir = sys.argv[1] # 指明被遍歷的文件夾
for parent, dirnames, filenames in os.walk(rootdir):
for filename in filenames:
currentPath = os.path.join(parent, filename)
transSave(currentPath)
演示
直接在cmd中運行即可,注意指定路徑
可以進入目錄,看到平移后的圖片
刪除
這個方法用于撤銷之前的平移操作,也可以用于撤銷下面的旋轉操作
代碼
import os
import os.path
import sys
rootdir = sys.argv[1] # 指明被遍歷的文件夾
for parent, dirnames, filenames in os.walk(rootdir):
for filename in filenames:
currentPath = os.path.join(parent, filename)
# 注意判斷條件,如果原文件名字有_則不適用,需要自己修改
if len(filename.split('_'))>1:
print('filename is :' + filename)
os.remove(currentPath)
演示
數據又回到了之前的樣子
旋轉
代碼
注釋當中有調整大小以及各種旋轉的代碼
from PIL import Image
import os
import os.path
import sys
rootdir = sys.argv[1] # 指明被遍歷的文件夾
for parent, dirnames, filenames in os.walk(rootdir):
for filename in filenames:
currentPath = os.path.join(parent, filename)
im = Image.open(currentPath)
#out = im.rotate(45) #45°旋轉
#out = im.resize((224, 224))
out = im.transpose(Image.FLIP_LEFT_RIGHT)
#out = im.transpose(Image.FLIP_TOP_BOTTOM) #垂直翻轉
#out = im.transpose(Image.ROTATE_90) # 90
#out = im.transpose(Image.ROTATE_180) #180°順時針翻轉
#out = im.transpose(Image.ROTATE_270) #270°順時針翻轉
newname=currentPath.replace('.jpg', '_transpose.jpg')
out.save(newname)
演示
在cmd執行后,可以去目錄看到結果
總結
以上是生活随笔為你收集整理的python图片旋转脚本_封装了深度学习中几个图片数据增强的脚本-python平移、旋转与调整大小...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10重置失败,重装系统踩坑
- 下一篇: Python实现Flesch阅读易读性公