返回顶部
首页 > 资讯 > 后端开发 > Python >如何用Python帮你打码
  • 583
分享到

如何用Python帮你打码

2023-06-02 05:06:59 583人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这期内容当中小编将会给大家带来有关如何用python帮你打码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。引言所谓的像素图,就是对图像做一个颗粒化的效果,使其产生一种妙不可言的朦胧感。费话不多说,先来看一

这期内容当中小编将会给大家带来有关如何用python帮你打码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

引言

所谓的像素图,就是对图像做一个颗粒化的效果,使其产生一种妙不可言的朦胧感。费话不多说,先来看一张效果图。

如何用Python帮你打码

如何用Python帮你打码

怎么样,效果还不错吧?现在,我们用Python来实现这种像素化的效果。

1 环境

2 需求分析

一个最简单的实现思路,在打开图片后,把图片分割成一些像素块,再对这些像素块中的图像信息进行处理(修改图像中的RGB值)即可。

这里我们使用Numpy库和PIL库来实现这个需求,后者用来图像的读取与保存,涉及到的所有图像处理动作均借助Numpy来实现。

有关NumPy模块、PIL模块的介绍,可参考如下。

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

PIL(Python Imaging Library)是Python常用的图像处理库,而Pillow是PIL的一个友好Fork,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。

这两个模块非Python内置,都属于第三方模块,可直接采用如下方式进行安装。

pip install numpypip install Pillow
注意,要想使用PIL模块,是需要直接install Pillow模块的。

3 代码实现

首先导入我们要用到的模块

import numpy as npfrom PIL import Image

接下来,我们要处理图片,首先得打开一张图片,如下

data = Image.open("P:\Personal\LuoShen.xpg")

然后把图像转换化Numpy数组进行下一步的处理

im1 = np.array(data)

这里处理的核心思想,也很简单,主要通过中间值的RGB,对所选范围块的RGB进行重新赋值。

im1[y:y + pixel, x:x + pixel] = im1[y + (pixel // 2)][x + (pixel // 2)]

这里的x、y是分别指的我们图像的横向、纵向像素点的坐标值、而pixel指的是我们要以多大的像素块,来处理这张图像,我们设置的单位像素块(Pixel数值)越小,生成的像素图越精确。

当然了,若单位像素块设置的太小,生成图像就看不出效果了,至于多大的数值合适,需要自行尝试。不同尺寸的图像,要达到最佳的像素化的显示效果,所需要设置的单位像素块的大小也是不同的,实践出真知。

我们需要图像的指定一个处理范围,并对该范围内的每一个坐标(像素)点进行像素化的处理。

for y in range(Start_coordinate[1], End_coordinate[1], pixel): for x in range(Start_coordinate[0], End_coordinate[0], pixel): pass

在处理完成之后,我们再把Numpy数组转换回图像。

im2 = Image.fromarray(im1.astype(np.uint8))

最后展示出处理后的图像

im2.show()

4 代码全景展示

import numpy as np

from PIL import Image

def to_pixelBlock(pixel, Start_coordinate, End_coordinate):

'''

:param pixel: 单位像素块的元素大小

:param Start_coordinate: 处理的起始坐标(像素)点,元组形式

:param End_coordinate: 处理的终止坐标(像素)点,元组形式

:return:

通过中间值的RGB,对所选范围块的RGB进行重新赋值,设置的单位像素块(Pixel数值)越小,生成的像素图越精确

'''

# 读取图片,并由 PIL image 转换为 NumPy array

im1 = np.array(Image.open("P:\Personal\LuoShen.jpg"))

# 遍历所要处理范围内的所有坐标(像素)点

for y in range(Start_coordinate[1], End_coordinate[1], pixel):

for x in range(Start_coordinate[0], End_coordinate[0], pixel):

# 通过中间值的RGB,对所选范围块的RGB进行重新赋值

im1[y:y + pixel, x:x + pixel] = im1[y + (pixel // 2)][x + (pixel // 2)]

# 将NumPy array 转换为 PIL image

im2 = Image.fromarray(im1.astype(np.uint8))

# 展示处理后的图像

im2.show()

if __name__ == '__main__':

# 设置好要处理的像素范围,并以多大的像素块来生成最终效果图

to_pixelBlock(10, (0, 0), (1280, 800)

使用了PIL加上Numpy的配合,短短几行代码实现了图像像素化的处理。当然这只是一种简单地实现,要想实现更丰富的处理效果,还可以借助CV2来实现。

上述就是小编为大家分享的如何用Python帮你打码了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网Python频道。

--结束END--

本文标题: 如何用Python帮你打码

本文链接: https://www.lsjlt.com/news/229043.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何用Python帮你打码
    这期内容当中小编将会给大家带来有关如何用Python帮你打码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。引言所谓的像素图,就是对图像做一个颗粒化的效果,使其产生一种妙不可言的朦胧感。费话不多说,先来看一...
    99+
    2023-06-02
  • 用代码帮你了解Python基础(1)
    目录1.数据类型和变量2.字符串和格式化总结1.数据类型和变量 # 数据类型: # 1.整型:Python中能处理任意大小的整数 intNum1 = 584520 intNum2 =...
    99+
    2024-04-02
  • 用代码帮你了解Python基础(2)
    目录1.列表:list2.元组:tuple3.条件判断总结1.列表:list # 1.list:Python内置的一种数据类型,列表; # 2.list是一种有序的集合,可以随时添加...
    99+
    2024-04-02
  • 用代码帮你了解Python基础(3)
    目录1.循环2.字典3.集合总结1.循环 # 1.for...in循环,依次把list或tuple中的每个元素迭代出来 studentNames = ["Willard","Chen...
    99+
    2024-04-02
  • 如何使用Python打包你的代码?哪个IDE最适合你?
    Python是一种非常流行的编程语言,它具有简单易学、高效、可扩展等特点。随着Python在各个领域的应用越来越广泛,代码的管理和维护也变得越来越重要。打包Python代码可以帮助我们更好地管理和分发代码,同时也可以保护代码的知识产权。本文...
    99+
    2023-10-17
    打包 ide 数据类型
  • Python 脚本打包 exe,auto-py-to-exe 来帮你!
    一. 什么是auto-py-to-exeauto-py-to-exe 是一个用于将Python程序打包成可执行文件的图形化工具。本文就是主要介绍如何使用 auto-py-to-exe 完成 python 程序打包。auto-py-to-ex...
    99+
    2023-05-14
    Python 脚本 exe
  • “你知道如何使用Python和Git吗?这个教程能帮到你!”
    Python和Git是现代软件开发中非常重要的工具。Python是一种高级编程语言,被广泛用于数据分析、机器学习、Web应用程序开发等领域;Git是一种版本控制系统,用于跟踪文件的更改历史和协作开发。在本教程中,我们将介绍如何使用Pytho...
    99+
    2023-10-16
    git 教程 响应
  • Python 日志打包load,如何优化你的代码?
    日志是程序调试和排错中不可或缺的一部分。Python提供了强大的日志功能,能够帮助我们记录程序运行过程中的各种信息,便于我们后期分析和调试。在实际项目中,日志数据量通常会非常大,因此,我们需要对日志进行打包和压缩,以便于后期的处理和存储。...
    99+
    2023-10-29
    日志 打包 load
  • 你知道如何使用Python存储和打包二维码吗?
    当今时代,二维码已经成为了人们生活中不可缺少的一部分。我们可以在商场、超市、餐厅、电影院等各种场所看到它们的身影。而Python作为一门高效的编程语言,也可以帮助我们存储和打包二维码。本文将会介绍如何使用Python存储和打包二维码。 首先...
    99+
    2023-08-18
    存储 二维码 打包
  • 打包你的Python代码:如何使你的程序更加高效?
    Python是一种非常流行的编程语言,它被广泛应用于各种领域,如科学计算、Web开发、机器学习等。在开发Python应用程序时,一个很重要的问题是如何打包你的代码,以便于发布和分享。本文将介绍Python的打包工具和打包技巧,帮助你使你的...
    99+
    2023-09-24
    leetcode 大数据 打包
  • 你知道吗?Python日志打包load可以帮助你更好地管理和维护代码!
    当我们在编写Python代码的时候,难免会遇到一些需要输出日志的情况。这些日志信息可以帮助我们更好地了解代码运行的情况,从而更好地进行代码管理和维护。而Python提供了一套完整的日志系统,可以帮助我们方便地输出日志信息。本文将介绍Pyth...
    99+
    2023-10-29
    日志 打包 load
  • 了解 VSCode 如何帮助你更好地编写代码
    标题:探索VSCode如何助你更优秀编程技巧 在当今的数字化时代,编程已经成为了人们生活和工作中不可或缺的技能。而一款优秀的代码编辑器则是每位开发者必备的利器。在众多的代码编辑器中,V...
    99+
    2024-04-02
  • Git如何帮助你更好地管理Python函数?
    作为一名Python开发者,你可能会遇到这样的问题:如何更好地管理自己的Python函数?如何保证代码的可维护性和可重用性?Git可以帮助你解决这些问题。本文将介绍Git如何帮助你更好地管理Python函数。 Git是一种分布式版本控制系...
    99+
    2023-06-05
    git 函数 laravel
  • Python 的 NumPy 库如何帮助你分析 Apache 日志?
    Apache 是一个广泛使用的开源 Web 服务器软件,它的日志文件记录了每个请求的详细信息。如果你需要对网站的访问情况进行分析,那么 Apache 日志文件是非常有用的数据源。但是,这些日志文件往往非常庞大,有时候需要处理几百万条记录。...
    99+
    2023-08-18
    numpy 日志 apache
  • Python 打包 api:如何让你的代码更加灵活?
    Python 是一种高级编程语言,它被广泛应用于数据科学、机器学习、人工智能和网络编程等领域。由于 Python 具有良好的可读性和易用性,因此越来越多的人开始使用它来开发自己的项目。然而,当你需要将你的 Python 代码分享给他人时,...
    99+
    2023-07-24
    打包 api 关键字
  • python代码如何打包
    网上的文章对小白都不太友好呀,讲得都比较高大上,本文章就用最简单的方式来教会大家如何打包。既然各位已经学习到了python打包了, 深适度应该跟我查不多。 注意事项:   1. 这个插件只能打包 mac 、win系统运行的文件,也就是打...
    99+
    2023-09-13
    python 开发语言
  • 18个帮你简化代码的Python技巧分享
    目录什么是单行代码为什么我需要它们开始1.if-else2. elif3. if4.函数5.循环(列表推导式)6. if 循环7. if else 循环8. While 循环与 if...
    99+
    2024-04-02
  • Python 如何帮助你处理分布式日志文件?
    在现代计算机应用程序中,日志文件是非常重要的组成部分。日志文件记录了应用程序的运行状况、错误信息、警告信息、性能指标等等。当应用程序出现问题时,开发人员通常需要查看日志文件以确定问题的根本原因。然而,随着应用程序规模的不断扩大,日志文件也...
    99+
    2023-09-07
    文件 分布式 日志
  • Python 编程如何帮助你更好地理解算法?
    作为一名程序员,你一定知道算法在编程中的重要性。算法是解决问题的思路和方法,能够帮助程序员优化代码,提高程序的效率,节省计算资源。而Python是一种高级编程语言,它的简洁、易读、易写的特点使得它成为了许多程序员的首选语言。Python不...
    99+
    2023-08-07
    编程算法 shell linux
  • Python 打包 api:如何让你的代码更易于管理?
    Python 是一种广泛使用的编程语言,它提供了各种各样的库和模块,可以帮助你快速开发应用程序。但是,当你需要在多个项目中使用相同的代码时,管理代码可能变得很困难。这时,打包 api 就是一个非常有用的工具。在本文中,我们将介绍如何使用 ...
    99+
    2023-07-24
    打包 api 关键字
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作