【python】图片转字符画 cv2+pygame实现

news2024/11/26 5:30:35

网上看到一些字符画,非常羡慕,想要用python写一个类似的东西,突然想到字符画不就是把图片分割为像素块再进行替换嘛
恰好之前稍稍入门了python的opencv库,可以对图片进行处理。

处理图片的思想为:对一个区域的像素进行参考值计算,用具有相似参考值的字符进行替代,因此除了图片处理过程,还需要自定义字符取模系统。
这样就把一个完整的流程画出来了:

字符取模

既然是图像处理,完全可以用pygame的界面和截屏功能来创造每一个字符的模块,这里设置区块大小为block=15(可以更改)
将字符显示在窗口大小同样为block的窗口上:

字符“0”的block
得到一个边长block的矩阵。接下来是自定义参考值,考虑到对于一个矩阵,人眼观测到边缘的聚集程度比中间的聚集程度低,而最中间因为像素数量过少,聚集程度也不高,因此设计一种从四周到中间的权重值:
对于block=15,有:
weight = [0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.005, 0.004]
在这里插入图片描述

pic = cv2.imread(content

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

打工人必学的法律知识(七)——《中华人民共和国劳动合同法实施条例》

目录 来源 第一章 总 则 第二章 劳动合同的订立 第三章 劳动合同的解除和终止 第四章 劳务派遣特别规定 第五章 法津责任 第六章 附 则 来源 《中华人民共和国劳动合同法实施条例》 第一章 总 则 第一条 为了贯彻实施《中华人民共和国劳动合同法》(以下简称…

mybatis说明

目录 1.说明 2.配置文件 3.映射器 4.select标签 5.insert标签 6.update标签 7.delete标签 8.resultMap的特别说明 9.注解 10.关联(级联)查询 11.动态sql 12.mybatis分页 13缓存 1.说明 MyBatis 是一个开源、轻量级的数据持久化框架,是 JDBC 和 Hiberna…

Redis学习笔记:数据结构和命令

本文是自己的学习笔记。主要参考资料如下: 马士兵 4、Redis的五大数据类型1.1、String1.1.1、String 类型的命令1.1.2、存储对象1.2、List1.2.1、List基本命令1.2.2、List高级命令1.3、Set1.3.1、Set基本命令1.4、HashMap1.4.1、HashMap基本命令1.5、ZSet&#xff0…

【数据结构】7.4 散列表的查找

文章目录7.4.1 散列表的基本概念7.4.2 散列函数的构造散列函数的构造方法7.4.3 处理冲突的方法1. 开地址法1.1 线性探测法1.2 二次探测法2. 链地址法7.4.4 散列表的查找散列表的查找效率分析总结7.4.1 散列表的基本概念 基本思想:根据要存储的关键字的值&#xff0…

计算机网络-杂项

目录 1、蜂窝移动网络 2、TCP和UDP 3、5层架构 4、在浏览器中输入url地址显示主页的过程 5、TCP的基本操作 6、三次握手,四次挥手 6.1、三次握手:双方保证自己和对方都能接收和发送数据。 6.2、三次握手中,为什么客户机最后还要再向服…

【计算机网络】应用层体系

我们知道现代常用的计算机网络模型为5层模型,其中应用层是直接与我们平时常见的软件对接的最高层,所以先来学习应用层就显得很有必要了。其中在应用层我们需要学习网络应用程序的实现、原理并且了解网络应用程序所需要的网络服务、客户和服务器、进程和运…

DW 2023年1月Free Excel 第七次打卡 动态函数

第七章 Excel函数-动态函数 数据下载地址与参考链接:https://d9ty988ekq.feishu.cn/docx/Wdqld1mVroyTJmxicTTcrfXYnDd 1.FILTER函数 在工作中,根据指定的条件,将符合条件的所有记录从数据源表格式查找过来,一是可以用高级筛选。…

两个实用的shell命令:sed和awk用法

🍎作者:阿润菜菜 📖专栏:Linux系统编程 本文目录 sed的用法 sed常用场景 awk的用法 awk常用场景 我们先来看一下力扣上的shell题库中的一题: 实现这个功能一般来说我们会想到tail和head命令来指定打印前几行或者后几…

string的模拟实现(下)

目录 string的模拟实现下 析构函数: 完善函数 空对象的构造函数: 头插函数的一些修正: 构造函数的完善: 实现append 插入函数: 插入函数(字符串) erase删除函数: 实现find函数&#…

【读论文】Spiking-YOLO Spiking Neural Network for Energy-Efficient Object Detection

AAAI-20 摘要 本文提出两个新方法为深度SNN提供快速、准确的信息传递:通道归一化和具有不平衡阈值的带符号神经元;本文也提出了一个基于脉冲的目标检测模型:Spiking-YOLO,并且在non-trivial datasets, PASCALVOC 和 MS COCO数据…

指针与数组

目录指针运算(补)指针指针指针的关系运算(补)指针与数组数组名二级指针指针数组指针运算(补) 指针指针 上一篇博客我们介绍了指针运算中的三种常见运算:指针整数,指针关系运算&…

23.1.27打卡 Codeforces Round #846 (Div. 2) A~D

https://codeforces.com/contest/1780A题给你一个长度为n的数组, 问你是否能找出三个数字, 使得这三个数字之和为奇数简单的小学数学奇偶奇偶偶偶所以我们只要找到三个奇数或者两个偶数一个奇数就好了/* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿…

简单复现 残差网络、Googlenet、mobilenet、SqueezeNet、ShuffleNet

1.残差网络 1)网络结构 当对x求偏导的时候,F(x)对x求偏导的值很小的时候,对整体求x的偏导会接近于1 这样解决了梯度消失问题,我们可以对离输入很近的层进行很好的更新。 要注意的是F(x&#…

【REACT-redux】

1. redux介绍 1.1 描述 Redux最主要是用作应用状态的管理。简言之,Redux用一个单独的常量状态树(state对象)保存这一整个应用的状态,这个对象不能直接被改变。当一些数据变化了,一个新的对象就会被创建(使…

JDK SPI 和 Dubbo SPI

SPI (Service Provider Interface),简单翻译就是服务提供接口,这里的“服务”泛指任何一个可以提供服务的功能、模块、应用或系统,会预留一些口子或者扩展点,只要按照既定的规范去开发,就可以动…

MES和金蝶云星空接口打通对接实战

四化智造MES(WEB)和金蝶云星空接口打通对接实战数据源平台:四化智造MES(WEB)MES建立统一平台上通过物料防错防错、流程防错、生产统计、异常处理、信息采集和全流程追溯等精益生产和精细化管理,帮助企业合理安排生产排…

机器视觉_HALCON_HDevelop用户指南_2.Getting Started

文章目录前言二、Getting Started2.1. 运行HDevelop2.2. 运行示例程序前言 标题本来想用“开始使用”或“快速上手”,不过感觉怪怪的,干脆就叫Getting Started吧,因为许多开发手册,开始上手的那节就叫这个名字。 本文是接上一篇…

【人工智能原理自学】LSTM网络:自然语言处理实践

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文讲解LSTM网络:自然语言处理实践,一起卷起来叭! 目录一、“RNN”二、编程实验一、“RNN” 上节课我们利用词嵌入把句子转化为词向量序列…

手把手本地搭建服务器笔记1

需要的下载的东西: vmware (百度网盘)银河麒麟镜像xshell,xftp安装vmware: 下载的包里有密钥,安装的时候就直接把密钥扔里面就好了 镜像处理: vmware左上角文件-新建虚拟机-典型,下一步 -安装程序光盘映像文件&am…

基于嵌入式物联网技术的智慧病房方案设计

文章目录前言1、要求2、系统设计3、功能模块3、系统功能模块图一、stm32控制模块原理图二、各功能模块的实现1、整个系统的基本配置2、RTOS多任务1、设计线程2、配置主函数代码3、温湿度读取模块(I2C)4、LED定时开关灯(pwm)5、按键实现报警信号6、脉搏&血氧数据读取7、UART…