PIL二值化验证码图片问题。二值化后出现一堆淡淡的黑点,直接显示图片没问题,保存后再打开就有问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PIL二值化验证码图片问题。二值化后出现一堆淡淡的黑点,直接显示图片没问题,保存后再打开就有问题相关的知识,希望对你有一定的参考价值。

第一个是原始的验证码。第二个是直接im.show()显示的,没有小黑点,第三个是保存后再打开的,就有问题了image = Image.open('3.jpg')imgry = image.convert('L') # 转化为灰度图threshold = 180table = []for i in range(256): if i < threshold: table.append(0) else: table.append(1)im = imgry.point(table,'1')im.show()#这里系统显示出来的图片是正常的。保存后用系统自带的图片浏览器就不行了。im.save('11.jpg')代码在这,求解答,急

参考技术A 存成jpg有这个误差,存bmp就没问题了本回答被提问者采纳

python怎么用PIL模块处理BMP图像 二值化

遍历图片对象?可是怎么个遍历法呢?Pillow 提供了一个 .load() 方法,用来处理像素。图片嘛,当然是二维的,有宽和高的。

pixels = image.load()
for x in ramge(image.width):
for y in range(image.height):
pixsels[x, y] = 255 if pixsels[x, y] > 125 else 0

当然了,只是最简单的二值化的话,直接 image.convert('1') 就可以了 :-)
参考技术A Pillow 提供了一个 .load() 方法,用来处理像素。图片嘛,当然是二维的,有宽和高的。

pixels = image.load()
for x in ramge(image.width):
for y in range(image.height):
pixsels[x, y] = 255 if pixsels[x, y] > 125 else 0

当然了,只是最简单的二值化的话,直接 image.convert('1') 就可以了 :-)
参考技术B 遍历图片对象?可是怎么个遍历法呢?Pillow 提供了一个 .load() 方法,用来处理像素。图片嘛,当然是二维的,有宽和高的。

pixels = image.load()
for x in ramge(image.width):
for y in range(image.height):
pixsels[x, y] = 255 if pixsels[x, y] > 125 else 0
当然了,只是最简单的二值化的话,直接 image.convert('1') 就可以了 :-)
参考技术C 遍历图片对象?可是怎么个遍历法呢?Pillow 提供了一个 .load() 方法,用来处理像素。图片嘛,当然是二维的,有宽和高的。

pixels = image.load()
for x in ramge(image.width):
for y in range(image.height):
pixsels[x, y] = 255 if pixsels[x, y] > 125 else 0

当然了,只是最简单的二值化的话,直接 image.convert('1') 就可以了 :-)

以上是关于PIL二值化验证码图片问题。二值化后出现一堆淡淡的黑点,直接显示图片没问题,保存后再打开就有问题的主要内容,如果未能解决你的问题,请参考以下文章

OpenCv之图像二值化(笔记12)

有趣的opencv-记录图片二值化和相似度实现

验证码识别之二值化

验证码识别之二值化

对二值化图像的选定区域内的目标彩图的物体颜色进行识别(RGB)并输出,用opencv怎么编写源代码?

图像细化函数(背景为黑色像素值为0,前景为白色像素值255,必须只含有0和255的像素值,即二值化后的图像)