python进行图片处理或识别的时候,通常第一步是获取每个像素的二进制值。(python 版本号为3.5)

具体过程如下:

1、如果没有安装image包,则首先需要安装image包。命令:pip3 install image

2、将图片转为二进制图片。

3、获取二进制图片中每个像素点的像素值。

4、将以为数组转化为原像素大小的二维数组。

参考:http://blog.csdn.net/vange/article/details/5395771

LUT: (Look-Up Table)实际上就是一张像素灰度值的映射表,它将实际采样到的像素灰度值经过一定的变换如阈值、反转、二值化、对比度调整、线性变换等,变成了另外一个与之对应的灰度值,这样可以起到突出图像的有用信息,增强图像的光对比度的作用。

示例代码:

import Image

import numpy

img = Image.open("test.jpg")

w,h = img.size ##显示像素大小 宽和高

### 注意,此处不能直接转化为黑白,即convert("1"),因为那样会丢失掉一些中间的颜色。如果待处理的字体或图像颜色只包含黑色或白色,而背景颜色为彩色的时候,可以直接转化成黑白颜色。

grayImg =img .convert(''L'') ##转换成灰色照片

#grayImg.save(''grayImg.jpg'') ##保存灰色照片

###通过设置阀值,生成一个查找表(lut)

threshold = 80

lut= []

for i in range( 256 ): ## 范围:0-255

if i < threshold:

lut.append(0)

else :

lut.append( 1 )

binaryImg = grayImg.convert(lut, "1") ## 根据查找表,将灰色照片转换为二进制照片

binaryImg.save("binary.jpg")

### 获取每个像素点的像素值

pixels = [ (x,y) for x in range(w) for y in range(h) ] ##获取每一个像素点的坐标

pixelVal = [] ##每个像素点对应的值

for point in pixels:

value = binaryImg.getpixel(point)

pixelVal.append(value)

### 将以为数组转化为二维数组,便于分析

biArray = numpy.array(pixelVal).reshape(300,-1) ### 300行,-1表示列数自动判断

通过以上操作,成功的将一个图片中每个像素点对应的值,提取了出来。接下来,就可以对图片进行进一步处理了。

在下一篇文章中,我将分享如何通过svm算法,自动识别图片中的字符或者数字。

python如何读取二进制文件为图片_python读取图片,并获取每个像素点的二进制值...相关推荐

  1. python从txt读取数据并画图_Python读取txt某几列绘图的方法

    晚上帮同学用Python脚本绘图,大概需求是读取一个txt文件的两列分别作为x和y的值,绘图即可,代码如下: #coding:utf-8 import numpy as np import matpl ...

  2. 如何用python处理excel中时间重合_python读取Excel文件中的时间,并计算时间间隔...

    以此Excel文件为例: 1.python读取Excel文件中的时间 import xlrd #读取Excel文件 workbook = xlrd.open_workbook('C:/Users/12 ...

  3. python读取超大csv文件_python – 读取一个巨大的.csv文件

    我目前正试图从Python 2.7中的.csv文件读取数据,最多1百万行和200列(文件范围从100mb到1.6gb).我可以这样做(非常慢)对于300,000行以下的文件,但一旦我走上,我得到内存错 ...

  4. python读取配置文件失败原因_python读取配置文件报keyerror-文件路径不正确导致的错误...

    - 在其他模块使用反射读取配置文件报错,但是在反射模块中读取GetData.check_list又是正确的 反射模块如下: # get_data.py from API_AUTO.p2p_projec ...

  5. python开发图片_python实现图片上添加图片

    在介绍完给图上添加文字后,我们再介绍给图片上添加图片,也就是图片的叠加. 需要使用的Python的图像库:PIL.更加详细的知识点如下: Imaga模块:用来创建,打开,保存图片文件 new(path ...

  6. python图片二进制流转换成图片_python将图片二进制数据转换成Django file对象

    来自django.core.file的二进制数据,来自于来自django.core.file的二进制数据,来自于前端摄像头uwsgi套接字的djanyUploadedFilefrom io IMPOR ...

  7. python获取控件内容_python通过win32api轻松获取控件的属性值

    1.如何利用句柄操作windows窗体 首先,获得窗体的句柄  win32api.FindWindows() 第二,获得窗体中控件的id号,spy++ 第三,根据控件的ID获得控件的句柄(hwnd)  ...

  8. python 计算召回率的程序_python实现计算精度、召回率和F1值

    python实现计算精度.召回率和F1值 摘要:在深度学习的分类任务中,对模型的评估或测试时需要计算其在验证集或测试集上的预测精度(prediction/accuracy).召回率(recall)和F ...

  9. python requests下载图片_python读取图片大小Python Requests模块快速入门

    requests是python的一个HTTP客户端库,跟urllib,urllib2类似.它比 urllib 更加方便,可以节约我们大量的工作,它比 urllib 更加 Pythoner. 安装 Re ...

最新文章

  1. CPU三级缓存技术解析
  2. python 文件获取绝对路径
  3. VS2008,vs2010 快捷键大全
  4. 中国楼宇自控系统发展规划现状及未来前景预测报告2022-2028年版
  5. jQuery Validate验证方法及教程
  6. 手动将jar添加到maven仓库中
  7. Bootstrap全局css样式_图片,响应式工具
  8. Python之IO模式 阻塞式io 非阻塞io 多路复用io 异步io 信号驱动io
  9. 使用Java 8和Lambda简化ReadWriteLock
  10. oracle ora 00283,【案例】Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程
  11. 财务自由,一年赚500万,依然做社畜是什么感觉?
  12. 不同分辨率图片匹配_超实用的图像超分辨率重建方法及应用介绍
  13. 【转】Python自动化测试 (一) Eclipse+Pydev 搭建开发环境
  14. delphi 获取webbrowser文本框id内数值_分布式 ID 生成策略
  15. paip.c语言gtk开发环境CodeBlocks /QT建立最佳实践
  16. dsp正弦波信号发生器c语言编程实例,应用DSP技术的正弦波发生器方案之程序设计...
  17. 【后缀数组+???】BZOJ3654 图样图森破
  18. Android超声波识别技术,超声波指纹识别or光学指纹识别?屏下指纹识别技术大比拼-传感技术-与非网...
  19. 即将奔三的90后,你们有多少存款
  20. java自行车(java自行车)

热门文章

  1. 6.3.4 新的_Bool类型
  2. 【刷题】BZOJ 1023 [SHOI2008]cactus仙人掌图
  3. DataGridView使用技巧一:获取或设置当前单元格的内容
  4. JAVA编程中的类和对象
  5. AndroidStudio_使用gradle添加依赖jar包_依赖模块---Android原生开发工作笔记78
  6. AndroidStudio_Android中使用非阻塞延迟的方法_利用Handler实现---Android原生开发工作笔记218
  7. Netty工作笔记0074---handler链调用机制实例1
  8. SpringCloud工作笔记036---oauth2微服务Establishing SSL connection without server's identity verification
  9. Android学习笔记---android平台中利用,SAX解析xml
  10. java整理软件---java模拟键盘,鼠标操作