【转载】用pyhon 对图片打码

没有的包直接用pip install packagename 下载就好了,这里我使用的图片是:

https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1561195304862&di=e6d3ba615d480c962ca5db1a1ba99a8f&imgtype=0&src=http%3A%2F%2Fimg2.ph.126.net%2FJ6ytxHCsVg6rTNtw80qVjQ%3D%3D%2F1835779798207141733.jpg

保存在与py文件同级目录下,下面直接上代码:

import numpy as np
from PIL import Image


def to_pixelBlock(pixel, Start_coordinate, End_coordinate):
    '''
    :param pixel: 单位像素块的元素大小
    :param Start_coordinate: 处理的起始坐标(像素)点,元组形式,左上角是圆点(0,0),往右是正,往下是正
    :param End_coordinate: 处理的终止坐标(像素)点,元组形式,图片右下角坐标
    :return:
    通过中间值的RGB,对所选范围块的RGB进行重新赋值,设置的单位像素块(Pixel数值)越小, 生成的像素图越精确
    '''
    # 读取图片,并由 PIL image 转换为 NumPy array
    img = np.array(Image.open("timg.jpg"))  # 原图750*1132

    # 遍历所要处理范围内的所有坐标(像素)点
    for y in range(Start_coordinate[1], End_coordinate[1], pixel):  # y轴
        for x in range(Start_coordinate[0], End_coordinate[0], pixel):  # x轴
            # 通过中间值的RGB,对所选范围块的RGB进行重新赋值,设置的单位像素块(Pixel数值)越小, 生成的像素图越精确
            img[y:y + pixel, x:x + pixel] = img[y +
                                                (pixel // 2)][x + (pixel // 2)]

    # 将NumPy array 转换为 PIL image
    new_img = Image.fromarray(img.astype(np.uint8))

    # 与爬虫保存二进制图片不同,这里直接用save方法保存
    new_img.save("show.jpg")

    # 展示处理后的图像
    new_img.show()


if __name__ == '__main__':
    # 设置好要处理的像素范围,并以多大的像素块来生成最终效果图
    to_pixelBlock(10, (300, 160), (390, 220))


打码后的图片:
图片来源于网络

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值