今天,带大家学习如何使用 Python 创建照片马赛克。我们将目标图像划分成较小图像的网格,并用适当的图像替换网格中的每一小块,即可创建原始图像的照片马赛克。比如这样:

本实验源自 异步社区的《Python极客项目编程》第七章,感谢异步社区

环境

Python

Xface 终端

图 7-2 中的图像展示了如何将原始图像分割成小块的网格。x 轴表示网格的列,y 轴表示网格的行。

5.5 创建图像网格

5.7 添加命令行选项

该程序的 main() 方法支持这些命令行选项:

括三个必需的命令行参数:目标图像的名称,输入图像文件夹的名称,以及网格尺寸。第四个参数是可选的文件名,如果省略该文件名,照片将写入文件 mosaic.png 中。

5.8 控制照片马赛克的大小

要解决的最后一个问题是照片马赛克的大小,如果基于目标图像中匹配的小块,盲目地将输入图像粘贴在一起,就会得到一个巨大的照片马赛克,比目标图像大得多。为了避免这种情况,调整输入图像的大小,以匹配网格中每个小块的大小(这样做还有一个好处,可以加快平均 RGB 的计算,因为用了较小的图像)。

main() 方法也进行这样的处理:

结果

python图片马赛克_利用Python来打马赛克!少儿不宜的东西永不再有!就是这么牛逼!...相关推荐

  1. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  2. python批量生成图片_利用Python批量生成任意尺寸的图片

    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...

  3. python将excel转换成图片格式_利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据 ...

  4. python照片墙地图_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  5. python图色检测_利用python打开摄像头及颜色检测方法

    最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了....,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,-下面我就汇报下今天的学习成果吧 小 ...

  6. python 词云_利用Python生成词云

    利用Python生成词云 一.第三方库的安装与介绍 1.1  Python第三方库jieba(中文分词) 1.介绍 "结巴"中文分词:做最好的 Python 中文分词组件. 2.特 ...

  7. python爬虫背景_利用Python代码实现一键抠背景功能

    前言 又是一个逛csdn发现的一个有趣的小项目,可以一键抠背景,需要用到removebg模块及其API,API可从其官网免费获取,网址如下https://www.remove.bg/zh ps:加上/ ...

  8. python代码物理_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  9. python高斯求和_利用Python进行数据分析(3)- 列表、元组、字典、集合

    本文主要是对Python的数据结构进行了一个总结,常见的数据结构包含:列表list.元组tuple.字典dict和集合set. image 索引 左边0开始,右边-1开始 通过index()函数查看索 ...

最新文章

  1. Jumpserver:跳板机
  2. 求s = k ! + n ! / m !的值
  3. linux swftools java_linux安装openoffice与SWFtools工具
  4. 网站添加到IIS和附件进程调试(新手使用篇)
  5. SharePoint开发 - Excel数据导入到SharePoint自定义列表(数据视图方式)
  6. 同步规则和happen-before规则
  7. 移动测试架构演进 | 蚂蚁金服自动化用例管理探索
  8. 51单片机有几个通用io口_51单片机IO口的四种使用方法
  9. 【Can not lock the registry cache file】同一台机器部署多个dubbo应用(配置文件相同)
  10. java 调用jni方法_Java JNI 本地方法调用Java对象方法
  11. Thread多线程一起执行睡眠,同时分开执行,实例
  12. FineUIPro控件库深度解析
  13. SpringCloud 应用在 Kubernetes 上的最佳实践(二):部署篇 (开发部署)
  14. 48小时备考TOGAF经验分享
  15. 深入浅出WPF知识点汇总二
  16. es拼音分词 大帅哥_Elasticsearch中文分词加拼音
  17. 转贴自圣骑士wind:Google Maps Android API V2的使用及问题解决
  18. gds文件 导出_GaussDB 200使用GDS服务导入导出数据
  19. 【kubernetes/k8s源码分析】calico node felix源码分析之一
  20. 关于等级保护测评,这些你都知道吗

热门文章

  1. 兆比特每秒和兆字节每秒_比特 千比特 兆比特之间的换算
  2. 用手机UC浏览器页面打开vue项目,图片,css,js都没加载
  3. 33-viper 配置文件加载
  4. html的代码怎麼格式化,怎么格式化html代码? Dreamweaver格式化html代码的技巧
  5. Android Froyo基于32 bit ubuntu 10.10编译问题
  6. matlab prob计算乘积
  7. C++入门基础(万字总结)(建议收藏!!!)
  8. 创建线程(Lock()、线程池、Callable())及线程通信
  9. 【质数乘积且包含回文快速近积数】2021-11-22
  10. A卡 HD5770(HD6770) Readon HD 5xxx 6xxx系列显卡黑苹果MOJAVE CATALINA QE/CI驱动教程