美文网首页
python常用图片操作:创建、读写、裁剪

python常用图片操作:创建、读写、裁剪

作者: jadefan | 来源:发表于2020-09-14 17:05 被阅读0次

    python有各种组件的加持,功能强大,操作图片比较方便快捷,代码也比较简洁
    整理下常用的操作,以后备用

    一、图片创建

    方法一
    import numpy as np
    import cv2
    ...
    # 创建空图片
    img = np.zeros((imgHeight, imgWidth, 3), np.uint8)
    # 根据矢量数据填充颜色
    area = np.array(regionXY)
    cv2.fillPoly(img, [area], (255, 255, 255))
    
    cv2.imwrite(path, img)
    
    方法二
    from PIL import Image
    ...
    image = Image.new(mode='RGBA', size=(imgWidth, imgHeight))
    for x in range(imgWidth-1):
      for y in range(imgHeight-1):
        pixdata[x,y] = (255,255,255,255)
    image.save(imgPath)
    

    二、图片读写

    from PIL import Image
    ...
    img = Image.open(imgPath)    #读入
    size = img.size()
    pixdata = img.load()
    pixdata[0,0] = (255,255,255,255)  #修改颜色
    img.save(imgPath)
    

    三、图片裁剪

    根据规则提取像素
    1. 定义提取规则,比如某某颜色、符合某数据函数的像素、距离判断、图形关系等
    2. 遍历每个像素,修改或另存
    规则矩形裁剪
    from PIL import Image
    ...
    img = Image.open(imgPath)
    box = (left, upper, right, lower)   #裁剪范围
    region = img.crop(box)
    region.save(regionPath)
    
    不规则多边形

    实际项目中会有用不规则多边形裁剪图像,比如某行政区划、某物品轮廓等
    如果遍历像素判断与矢量图形的关系,执行效率会非常慢,

    1. 将用turtlecv2掩膜矢量数据转为栅格数据,比如jpg\png,
    2. 确定目标图片和掩膜像素的对应关系
    3. 遍历目标图片像素操作

    相关文章

      网友评论

          本文标题:python常用图片操作:创建、读写、裁剪

          本文链接:https://www.haomeiwen.com/subject/hvbzektx.html