python对验证码进行降噪处理

news2024/12/22 22:23:45

举例图:

在这里插入图片描述

第一步先通过二值化处理把干扰线去掉:

from PIL import Image
 
# 二值化处理
def two_value():
    for i in range(1,5):
        # 打开文件夹中的图片
        image=Image.open('./Img/'+str(i)+'.jpg')
        # 灰度图
        lim=image.convert('L')
        # 灰度阈值设为165,低于这个值的点全部填白色
        threshold=165
        table=[]
        
        for j in range(256):
            if j<threshold:
                table.append(0)
            else:
                table.append(1)
 
        bim=lim.point(table,'1')
        bim.save('./Img2/'+str(i)+'.jpg')
 
two_value()

运行结果:
在这里插入图片描述

然后对黑白图片进行降噪,去掉那些单独的黑色像素点:

from PIL import Image
 
# 去除干扰线
im = Image.open('./Img2/1.jpg')
# 图像二值化
data = im.getdata()
w,h = im.size
black_point = 0
 
for x in range(1,w-1):
    for y in range(1,h-1):
        mid_pixel = data[w*y+x] # 中央像素点像素值
        if mid_pixel <50: # 找出上下左右四个方向像素点像素值
            top_pixel = data[w*(y-1)+x]
            left_pixel = data[w*y+(x-1)]
            down_pixel = data[w*(y+1)+x]
            right_pixel = data[w*y+(x+1)]
 
            # 判断上下左右的黑色像素点总个数
            if top_pixel <10:
                black_point += 1
            if left_pixel <10:
                black_point += 1
            if down_pixel <10:
                black_point += 1
            if right_pixel <10:
                black_point += 1
            if black_point <1:
                im.putpixel((x,y),255)
            # print(black_point)
            black_point = 0
 
im.save('xxxx.jpg')

运行结果:
在这里插入图片描述

最后对边框上附着的黑色像素点进行消除:

from PIL import Image
 
# 去除干扰线
im = Image.open('./Img2/1.jpg')
# 图像二值化
data = im.getdata()
w,h = im.size
black_point = 0
 
for x in range(1,w-1):
    for y in range(1,h-1):
        if x<2 or y<2 :
            im.putpixel((x-1, y-1), 255)
        if x>w-3 or y>h-3:
            im.putpixel((x+1 , y+1 ), 255)
 
im.save('xxx.jpg')

运行结果:
在这里插入图片描述

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

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

相关文章

搭建个人博客攻略

文章目录 碎碎念一、下载 g i t git git 和 N o d e . j s Node.js Node.js二、安装 h e x o hexo hexo 1. 1. 1.在非 C C C 盘新建一个文件夹 b l o g blog blog&#xff0c;右键打开 g i t b a s h git bash gitbash 2. 2. 2.在 g i t git git 创建文件 hexo 3. 3. 3.he…

基于FPGA的图像RGB转CIE-Lab实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1RGB颜色空间 4.2CIE-Lab颜色空间 4.3RGB转CIE-Lab算法原理 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的结果导入到matlab&#xff0c;并和matlab的仿真结果进行对比&#xff1a…

数据质量管理软件行业分析:2023年复合增长率达到31.9%

数据质量管理软件按照一般的功能模块划分可以划分为产品信息管理、存货管理、销售管理、采购管理、生产管理、设备管理、实验室管理、品质管理、售后管理等模块&#xff0c;质量管理绝非仅仅检验&#xff0c;或者常说的批检、巡检、首检、自检等&#xff0c;质量管理是对只要影…

密码至少包含大写、小写字母、数字和特殊字符其中三种

j 正则表达式&#xff1a; var passReg /^(?![a-zA-Z]$)(?![A-Z0-9]$)(?![A-Z\W_!#$%^&*~()-]$)(?![a-z0-9]$)(?![a-z\W_!#$%^&*~()-]$)(?![0-9\W_!#$%^&*~()-]$)[a-zA-Z0-9\W_!#$%^&*~()-]{8,32}$/;if (!passReg.test(value)) {return callback(new Er…

外汇天眼:新手做外汇交易需要注意什么?

外汇投资是一个充满机会和挑战的市场&#xff0c;对于新手来说&#xff0c;了解一些必要的知识和技巧是非常重要的。 以下是一些新手投资外汇必须注意以下几点&#xff1a; 1.了解外汇市场的基本知识 在进入外汇市场之前&#xff0c;了解一些基本知识是必要的。 这包括外汇市…

触发器和函数:让代码更接近数据

来源&#xff1a;艾特保IT 虹科干货丨触发器和函数&#xff1a;让代码更接近数据 原文链接&#xff1a;虹科干货 | 触发器和函数&#xff1a;让代码更接近数据 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 文章速览&#xff1a; 触发器和函数的基础知识 编写语言…

2023_Spark_实验二十六:编写Shell模拟生成点击实时数据

引言&#xff1a;流式数据处理主要处理实时数据&#xff0c;由于实验教学过程中&#xff0c;每个同学无法拿到实时数据&#xff0c;因此我们开发shell脚本模拟实时数据生成&#xff0c;支持后续实验。 实验目的&#xff1a;通过开发模拟实时点击流shell脚本&#xff0c;模拟实时…

文本用二维码展示如何制作?支持插入图片或其他内容

将文本内容存入二维码中扫码查看&#xff0c;方便信息的快速传播&#xff0c;让其他人扫码就可以获取内容。那么想要把文本内容生成二维码&#xff0c;一般的制作方法可以利用二维码生成器来制作&#xff0c;操作的步骤也非常的简单&#xff0c;只需要用简单的几个步骤就可以快…

圣诞节酷炫特效合集【含十几个HTML+CSS前端特效+34个桌面酷炫圣诞程序】

写在前面 ❤️源码获取:订阅后见文末 ❤️内容介绍:包含HTML+CSS等十几个圣诞特效;以及三十四个桌面酷炫圣诞树合集 ❤️订阅后所得如下: ❤️HTML圣诞+桌面圣诞程序效果如下: 下方展示代码仅举例其中几个 所有效果源码及文件订阅后找博主获取即可 🎄css3圣诞雪人动…

Python爬虫实战 | 爬取拼多多商品的详情价格SKU数据

本案例将为大家演示如何爬取拼多多商品的详情数据。目的是爬取大量的商品以及商品的评论&#xff0c;所以在程序设计上要考虑到该爬虫的高并发以及持久化存储。爬虫工具选用了Scrapy框架&#xff0c;以满足爬虫的高并发请求任务&#xff1b;持久化存储用了MongoDB&#xff0c;对…

Feign-自定义配置

一、自定义Feign配置 二、修改日志级别 配置Feign日志有两种方式 方式一&#xff1a;application配置文件方式 &#xff08;1&#xff09;全局生效 feign: client: config: default: #这里用default就是全局配置&#xff0c;…

Quartus II + Modelsim 脚本仿真

软件版本&#xff1a;Intel Quartus Prime Design Suite: 23.2 方式参考附件Intel 官方文档&#xff1a;Questa*-Intel FPGA Edition Quick-Start: Intel Quartus Prime Pro Edition 第1步&#xff0c;创建一个ram ip&#xff0c;并形成一个例化的top层ip 第2步&#xff0c;自…

nestjs守卫校验jwt

目标 部分接口需要用户登录后才可以访问&#xff0c;用户登录后可以颁发 jwt_token 给前端&#xff0c;前端在调用需要鉴权的接口&#xff0c;需要在请求头添加 jwt_token&#xff0c;后端校验通过才能继续访问&#xff0c;否则返回403无权访问 创建守卫 anth 安装依赖 npm…

linux串口数据丢失--中断绑定CPU优化

问题现象 机器在户外测试时, 出现 轮速记 丢失的现象 小概率出现 50Hz丢失1~2帧极低概率出现 0.1~0.3秒内没有底盘数据 此问题导致slam定位漂, 需要优化处理. 验证与测试 问题1: 底盘串口 一个数据帧(head–data–crc) 被分片2~3报文 解决方法: 检测到head之后, 解析data…

2023全国大学生数据分析大赛A题完整论文教学

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了全国大学生数据分析大赛A题某电商平台用户行为分析与挖掘完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 实…

bugku -- 网站被黑--本地管理员

dirsearch 或者御剑扫目录 扫出来有个登录页面 然后bp抓包爆破密码 扫出来密码是heck登录就行了 构造x-forwarded-for:127.0.0.1 本地登录&#xff1a; 爆破账号 密码是text123 下面的base64解码可以知道

《地理信息系统原理》笔记/期末复习资料(11. GIS的输出与地图可视化)

目录 11. GIS的输出与地图可视化 11.1. GIS的输出 11.1.1. 输出方式 11.1.2. GIS的图形输出设备 11.2. 地图符号 11.2.1. 地图符号的实质 11.2.2. 地图符号的分类 11.2.3. 地图符号的设计要求 11.3. 专题信息表达 11.3.1. 专题地图的基本概念 11.3.2. 专题地图的表示…

漏洞补丁存在性检测技术洞察

1、 漏洞补丁存在性检测技术是什么&#xff1f; 漏洞补丁存在性检测技术通俗的理解就是检测目标对象中是否包含修复特定已知漏洞的补丁代码&#xff0c;目标检测对象可能是源码&#xff0c;也能是二进制文件。 2、 漏洞补丁存在性检测技术业务背景 补丁检测这个问题背景是产品…

SSL证书验证域名所有权

SSL证书申请时需要进行验证&#xff0c;这是因为SSL证书的主要目的是为了确保网络通信的安全性和数据的完整性。通过验证&#xff0c;证书颁发机构&#xff08;CA&#xff09;可以确认申请者对特定域名或资源的所有权&#xff0c;并确保他们有权使用该证书来加密和保护用户与网…

vue3 实现日期格式化

vue3 实现日期格式化 在标签内添加 value-format"YYYY-MM-DD" <el-form-item label"注册时间:"><el-date-picker v-model"tableForm.date" type"date" value-format"YYYY-MM-DD" placeholder"选择注册时间&…