https://www.jb51.net/article/155342.htm

写在最前面:

我在研究机器学习的过程中,给的数据集是手写数字图片被处理后的由0,1表达的txt文件,今天写一写关于图片转化为二进制txt文件的python实践

在这里,我们使用python中的Pillow库,Pillow库中有一个很重要的类是Image,可以对图片进行很多处理。

首先,导入Image类

1
from PIL import Image

打开图片

1
im=Image.open('1.jpg')

获取图片宽和高

1
2
width=im.size[0]
height=im.size[1]

也可以这样

1
width,height=image_file.size

打开文件

1
fh=open('1.txt','w')

然后我们对图像的像素进行处理

获取每个像素点的像素值,这是一个三元元组

1
<class 'tuple'>

大家都知道,像素是由红、绿、蓝三色构成,每个的值0-255,当三色灰度都为0的时候,颜色为黑色,都为255是白色。利用这个特性,我们将三个值相加,如果是黑色,全部写1,其余颜色一律为0。

1
2
3
4
5
6
7
8
9
10
11
for i in range(height):
 for j in range(width):
 #获取像素点颜色
 color=im.getpixel((j,i))
 colorsum=color[0]+color[1]+color[2]
 if(colorsum == 0):
  fh.write('1')
 else:
  fh.write('0')
 fh.write('\n')
fh.close()

看下效果图:

网上找的图片的处理效果都不好,这个是文本编辑打出来的,效果明显一点,反正就一个很简单的处理过程。

以上这篇将python图片转为二进制文本的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

将python图片转为二进制文本的实例的更多相关文章

  1. ubuntu下把python脚本转为二进制字节码文件

    ubuntu下把python脚本转为二进制字节码文件 听语音 原创 | 浏览:354 | 更新:2017-12-22 14:48 1 2 3 4 5 6 7 分步阅读 自己拥有个几个python脚本文 ...

  2. 011_如何decode url及图片转为base64文本编码总结

    一.咱们经常会遇到浏览器给encode后的url,如何转换成咱们都能识别的url呢?很简单,talk is easy,Please show me your code,如下所示: (1)英文decod ...

  3. Mono for Android (4)-- 图片转为二进制,二进制转回图片

    最近纠结蓝牙打印的问题,想着图片先转为二进制发给打印机,找了好多资料,终于成功了,贴出来共享一下 先是图片转换为二进制的: Bitmap bitmap = BitmapFactory.DecodeRe ...

  4. python图片转为base64

    # -*- coding: utf-8 -*- import base64 with open("/home/chaowei/1.png","rb") as f ...

  5. C# 图片转二进制

    /// <summary> /// 将目标路径转为image /// </summary> /// <param name="path">图片路 ...

  6. media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面

    一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...

  7. Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:

    创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...

  8. C#和Python 图片和base64的互转

    C#实例代码: /// <summary> /// 图片转base64 /// </summary> /// <param name="bmp"> ...

  9. Python编程笔记二进制、字符编码、数据类型

    Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...

随机推荐

  1. Leetcode 1254. 统计封闭岛屿的数目

    题目: 有一个二维矩阵 grid ,每个位置要么是陆地(记号为 0 )要么是水域(记号为 1 ). 我们从一块陆地出发,每次可以往上下左右 4 个方向相邻区域走,能走到的所有陆地区域,我们将其称为一座 ...

  2. react-native字体react-native-vector-icons在ios下的使用

    react-native字体react-native-vector-icons在ios下的使用 官网和网上有各种针对ios/android的安装和使用方法:能够使用了,基本就等于安装成功了. reac ...

  3. 使用MobaXterm配置ssh隧道(port forwarding)

    背景描述:如图所示,本地与远程服务器之间存在防火墙,防火墙只允许SSH端口通过,为访问远程服务器,我们可以借助MobaXterm来与SSH服务器建立隧道,使得防火墙外的用户能够访问远程服务器 具体配置 ...

  4. Metasploaitable和侦察httrack-安全牛课堂网络安全之Web渗透测试练习记录

    环境配置 首先在网上下载kali的镜像以及Metasploaitable虚拟机,打开按照网上教程安装好kali虚拟机,另一边打开Metasploaitable虚拟机,进入输入初始账户msfadmin, ...

  5. [原创]K8域控植入脚本生成器(内网渗透/RPC不可用解决方案)

    0x001 简介 当IPC或WMI无法访问域内机器时,可通过脚本上控. 我们可以在个人机的开机注销重启脚本里配置持久化. 域环境下同样也有开机脚本,但得在在域控机器配置 可以使用BAT\VBS等脚本, ...

  6. lucene字典实现原理(转)

    原文:https://www.cnblogs.com/LBSer/p/4119841.html 1 lucene字典 使用lucene进行查询不可避免都会使用到其提供的字典功能,即根据给定的term找 ...

  7. BZOJ3926 ZJOI2015诸神眷顾的幻想乡(广义后缀自动机)

    对多串建立SAM的一种方法是建trie再对trie建SAM.构造方式分为在线(也即不建trie而是依次插入每个串,或在trie上dfs)和离线(也即建好trie再bfs).其中离线构造与单串的构造方式 ...

  8. k8s-Node(节点)

    k8s-Node(节点) Node(节点)是k8s集群中相对于Master而言的工作主机.Node可以是一台物理主机,也可以是一台虚拟机(VM).在每个Node上运行用于启动和管理Pid的服务Kube ...

  9. Prometheus监控学习笔记之Grafana用户权限分组

    Grafana有账户分权和管理功能,不过和一般的账户分权管理操作不一样.Grafana通过admin账户建立organization,在不通的org内配置数据源和用户,用户隶属于不通的org,只能看到 ...

  10. SpringBoot与SpringDateJPA和Mybatis的整合

    一.SpringBoot与SpringDateJPA的整合 1-1.需求 查询数据库---->得到数据------>展示到页面上 1-2.整合步骤 1-2-1.创建SpringBoot工程 ...