PythonⅡ

一:批量处理文件

1.批量重命名

import os
def rename():
    i = 0
    path = r'/Users/lorristar/Desktop/zio' #访问路径
    filelist = os.listdir(path) 
    for files in filelist: 
        i = i + 1
        Olddir = os.path.join(path, files)  #旧文件路径
        if os.path.isdir(Olddir):  #跳过文件夹
                continue
        filename = 'zio2'     #新文件名
        filetype = '.jpg'       #扩展名
        Newdir = os.path.join(path, filename + str(i) + filetype)
        os.rename(Olddir, Newdir)
    return True
if __name__ == '__main__':
    rename()

 

2.批量删除

import os
    def del_files(path):
        for root,dirs,files in os.walk(path):
                for name in files:
                    if '.jpg' in name:
                     os.remove(os.path.join(root,name))
                    print('Delete files:',os.path.join(root,name))   
if __name__=='__main__':
    path=r'/Users/lorristar/Desktop/zio'
    del_files(path)

二:自行实现几个图片基本操作

1.简单显示

import cv2
img = cv2.imread("/Users/lorristar/Desktop/zio/zio.jpg") #读取图像
#cv2.namedWindow('zio')
cv2.imshow('zio', img) #显示图像
cv2.waitKey(0) #保持窗口
cv2.destroyWindow("zio")

2.色彩转换

import cv2
img = cv2.imread("/Users/lorristar/Desktop/zio/zio.jpg") #read
img1 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY) #改变颜色并新建一张图片
cv2.imwrite("/Users/lorristar/Desktop/zio/zio-gray.jpg",img1) #保存新建图片

3.翻转图片

import cv2
img = cv2.imread("/Users/lorristar/Desktop/zio/zio.jpg") 
img1 = cv2.flip(img,flipCode=0)#flipCode = 0垂直翻转 flipCode = 1水平翻转 flipCode = -1绕中心点旋转
cv2.imwrite("/Users/lorristar/Desktop/zio/zio-filp.jpg",img1)

4.简单拼接

import cv2
img = cv2.imread("/Users/lorristar/Desktop/zio/zio.jpg") 
img2 = cv2.imread("/Users/lorristar/Desktop/zio/zio.jpg") 
img3 =cv2.hconcat([img,img2])#hconcat 水平拼接 vconcat 垂直拼接
cv2.imwrite("/Users/lorristar/Desktop/zio/zio-concat.jpg",img3)

5.局部剪切

import cv2
img = cv2.imread("/Users/lorristar/Desktop/zio/zio.jpg") 
img3 =img[300:400,50:300] #剪切 开始的y:结束的y,开始的x:结束的x
cv2.imwrite("/Users/lorristar/Desktop/zio/zio-frame.jpg",img3)
cv2.imshow("image", img3)  #读取剪切图片
cv2.waitKey(0)

6.图片缩放

import cv2
img = cv2.imread("/Users/lorristar/Desktop/zio/zio.jpg") 
img2 = cv2.resize(img,(165,213), interpolation = cv2.INTER_CUBIC) # 缩放
cv2.imwrite("/Users/lorristar/Desktop/zio/zio-resize.jpg",img2)

CV_INTER_NN - 最近邻插值,  

CV_INTER_LINEAR - 双线性插值 (缺省使用)  

CV_INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。

CV_INTER_CUBIC - 立方插值. 

7.绘图代码

import cv2
import numpy as np

img  = 255*np.ones((350,512,3),np.uint8)#unit8:0~255
font = cv2.FONT_HERSHEY_DUPLEX
#font = cv2.FONT_HERSHEY_COMPLEX# 设置字体

#文本          # 图片对象、文本、    位置、 字体、字体大小、颜色、     字体粗细
cv2.putText(img, "happy day", (50,300), font, 0.8, (25, 25, 25), 2,)#颜色可以自己调整,范围为0-255
#线             #起点      终点       颜色    粗细
cv2.line(img, (50,310), (185,310), (0, 0,0),4)
#矩形               #左上顶点 右下顶点
cv2.rectangle(img, (80,8), (200,100), (0, 255,0),2)
#圆形             #圆心   半径 颜色    控制是否填充 -1表示填充
cv2.circle(img,(60,60),30,(0,0,213),1)
#椭圆            #中心点   长轴 短轴 偏转角度,起始角度,终止角度
cv2.ellipse(img,(100,300),(100,50),180,0,360,(20,213,79),1) 
cv2.imshow("Draw", img)
cv2.waitKey(0)

 


 

posted @ 2019-11-03 18:04  阿尔法个贝塔  阅读(186)  评论(0编辑  收藏  举报