PIL基础操作
打开图片
BASE_PATH = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(BASE_PATH, "fj.jpg") # 打开图片 img = Image.open(file_path) """ format : 识别图像的源格式,如果该文件不是从文件中读取的,则被置为 None 值。 size : 返回的一个元组,有两个元素,其值为象素意义上的宽和高。 mode : · 1 (1-bit pixels, black and white, stored with one pixel per byte) · L (8-bit pixels, black and white) · P (8-bit pixels, mapped to any other mode using a colour palette) · RGB (3x8-bit pixels, true colour) · RGBA (4x8-bit pixels, true colour with transparency mask) · CMYK (4x8-bit pixels, colour separation) · YCbCr (3x8-bit pixels, colour video format) · I (32-bit signed integer pixels) · F (32-bit floating point pixels) """ print img.format, img.size, img.mode, img.height, img.width # h,w = img.size # (X,Y) 等价于 # h = img.heigth # w = img.width # 缩略图 img.thumbnail((w*0.75, h//2)) img.save("1.jpg", "JPEG") # 应用模糊滤镜: im2 = img.filter(ImageFilter.BLUR)
# 存储图片 im2.save(‘blur.jpg‘, ‘JPEG‘)
• BLUR:模糊滤波 • CONTOUR:轮廓滤波 • DETAIL:细节滤波 • EDGE_ENHANCE:边界增强滤波 • EDGE_ENHANCE_MORE:边界增强滤波(程度更深) • EMBOSS:浮雕滤波 • FIND_EDGES:寻找边界滤波 • SMOOTH:平滑滤波 • SMOOTH_MORE:平滑滤波(程度更深) • SHARPEN:锐化滤波 • GaussianBlur(radius=2):高斯模糊 >radius指定平滑半径。 • UnsharpMask(radius=2, percent=150, threshold=3):反锐化掩码滤波 >radius指定模糊半径; >percent指定反锐化强度(百分比); >threshold控制被锐化的最小亮度变化。 • Kernel(size, kernel, scale=None, offset=0):核滤波 当前版本只支持核大小为3x3和5x5的核大小,且图像格式为“L”和“RGB”的图像。 >size指定核大小(width, height); >kernel指定核权值的序列; >scale指定缩放因子; >offset指定偏移量,如果使用,则将该值加到缩放后的结果上。 • RankFilter(size, rank):排序滤波 >size指定滤波核的大小; >rank指定选取排在第rank位的像素,若大小为0,则为最小值滤波;若大小为size * size / 2则为中值滤波;若大小为size * size - 1则为最大值滤波。 • MedianFilter(size=3):中值滤波 >size指定核的大小 • MinFilter(size=3):最小值滤波器 >size指定核的大小 • MaxFilter(size=3):最大值滤波器 >size指定核的大小 • ModeFilter(size=3):波形滤波器 选取核内出现频次最高的像素值作为该点像素值,仅出现一次或两次的像素将被忽略,若没有像素出现两次以上,则保留原像素值。 >size指定核的大小