700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python如何读取二进制文件为图片_python读取图片 并获取每个像素点的二进制值...

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

时间:2024-02-09 07:06:30

相关推荐

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

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

具体过程如下:

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

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

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

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

参考:/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算法,自动识别图片中的字符或者数字。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。