用 Julia 的频域滤波技术识别含干扰线的验证码

news/2025/9/23 18:46:43/文章来源:https://www.cnblogs.com/ocr12/p/19107724

在许多验证码图像中,存在大量有意添加的干扰线条、弯曲波纹或背景噪声,这些设计是为了阻止自动识别。传统空间域的二值化方法往往无法彻底去除这些干扰,导致 OCR 误识别或识别失败。频域滤波提供了另一种强大的解决思路:通过傅里叶变换,将图像转换到频率空间,精准去除频率特征明显的干扰成分。

一、安装依赖库
using Pkg
Pkg.add(["Images", "ImageIO", "FFTW", "ImageFiltering", "Tesseract"])
更多内容访问ttocr.com或联系1436423940
二、读取并灰度化图像
using Images, ImageIO

img = load("captcha_with_lines.png")
gray = Gray.(img)

三、执行傅里叶变换进入频域
using FFTW

将灰度图转换为矩阵并中心化

gray_array = Float64.(gray)
F = fftshift(fft(gray_array))

四、构建高通滤波器去除线条干扰
function highpass_filter(size, cutoff)
rows, cols = size
center_r, center_c = div(rows, 2), div(cols, 2)
mask = ones(Float64, rows, cols)

for r in 1:rows, c in 1:colsd = sqrt((r - center_r)^2 + (c - center_c)^2)if d < cutoffmask[r, c] = 0.0  # 抑制低频(背景、粗线)end
end
return mask

end

filter = highpass_filter(size(F), 20)
filtered_freq = F .* filter

五、反变换回空间域
filtered_spatial = abs.(ifft(ifftshift(filtered_freq)))
norm_img = filtered_spatial ./ maximum(filtered_spatial)
binary = map(x -> x > 0.4 ? 1.0 : 0.0, norm_img)
save("filtered_binary.png", binary)

六、使用 Tesseract OCR 识别
using Tesseract

ocr = TesseractOcr("eng")
set_image(ocr, "filtered_binary.png")
text = strip(get_text(ocr))

println("识别出的验证码:", text)

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

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

相关文章

网站设计培训学校有哪些十大社区团购平台排名

1、问题 在使用PopupWindow的时候,我们构建好了直接放在Activity的onCreate函数里面直接运行,提示这个错误 Unable to add window -- token null is not valid; is your activity running? 2、原因分析 popupWindow显示依赖activity,并且要等activity所有的生命周期方法…

快速知彼网络网站建设网站建设浏览器不兼容

文章目录 题目描述法一 模拟 题目描述 法一 模拟 初始化一个二维向量&#xff0c;名为matrix&#xff0c;它有n行和n列。向量的每个元素都是一个整数&#xff0c;初始化为0。初始化二维向量的语法如下&#xff1a;vector<vector<int>> matrix(n, vector<int>…

怎么自己开网站青岛企业自助建站系统

微调和RAG&#xff08;Retrieval-Augmented Generation&#xff09;在多个维度上存在显著的区别。以下是它们之间的主要差异&#xff1a; 1. **知识维度**&#xff1a; - RAG对知识的更新时间和经济成本更低。它不需要训练&#xff0c;只需要更新数据库即可。 - RAG对知识的掌控…

华强南网站建设网页设计实训报告题目来源

源起年初我们在找一款框架&#xff0c;希望它有如下几个特点&#xff1a;学习成本低只需要学.Net每年主推的技术栈和业务特性必须支持的中间件&#xff0c;给开发同学减负&#xff0c;只需要专注业务就好个人见解&#xff1a;一款好用的框架应该是补充&#xff0c;而不是颠覆或…

网站改版公司哪家好建设品牌型网站制作

SCI一区 | Matlab实现DBO-TCN-LSTM-Attention多变量时间序列预测 目录 SCI一区 | Matlab实现DBO-TCN-LSTM-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【SCI一区级】Matlab实现DBO-TCN-LSTM-Attention多变量时间序列预测&#xff08;程…

体育设施建设发布有没有网站汕尾市企业网站seo点击软件

上周我们介绍的天线的基础知识&#xff0c;今天亿佰特为大家介绍一下天线的安装队通信效果的影响。随着科技的发展&#xff0c;无线通信越来越深入我们的工作和生活中&#xff0c;同时天线也变成了我们生活中最常见的物品。 天线是一种能量变换器&#xff0c;它把传输线上传播的…

网站后台登录模板住房和城乡建设部网站职责

封装&#xff08;Encapsulation&#xff09;&#xff1a;封装是面向对象编程的一个基本理念&#xff0c;它将数据和对数据的操作封装在一个类中&#xff0c;并通过类的访问修饰符来控制对数据的访问。封装的目的是隐藏实现细节&#xff0c;使得类的使用者无需关心内部的具体实现…

关于公司门户网站建设的议案小程序自助搭建平台

随着社会的数字化和智能化进程的加速&#xff0c;人像采集在金融机构身份认证领域中发挥重要作用&#xff0c;为人们的生活带来更多便利和安全保障。 金融机构在身份验证上的痛点主要包括以下方面&#xff1a; 身份盗用和欺诈风险&#xff1a;传统身份验证方式可能存在漏洞&am…

Feminism in China

Due to the characteristics of Chinese language, Chinese women often consider themselves too important. I suggest that Chinese women should learn more English/Japanese or Korean, take a few names starti…

大模型微调示例四之Llama-Factory-DPO - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第9节-子查询-ALL - 详解

第9节-子查询-ALL - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

网站可以做无形资产潍坊网站seo外包

当我们在写前端页面的时候为了页面的美观我们通常会为页面设置图片背景&#xff0c;那么我们如何来设置全屏的背景图呢&#xff1f;&#xff1f;&#xff1f; 设置全屏背景图需要三个属性 background-image: url(img/untitled.png);background-repeat: no-repeat;background-s…

网站如何查看浏览量wordpress里的导航用什么

一.HTTPS是如何保证安全传输的 https通过使⽤对称加密、⾮对称加密、数字证书等⽅式来保证数据的安全传输。 客户端向服务端发送数据之前&#xff0c;需要先建⽴TCP连接&#xff0c;所以需要先建⽴TCP连接&#xff0c;建⽴完TCP连接后&#xff0c;服务端会先给客户端发送公钥…

长沙网站搭建公司联系方式网站建化

目录 1.查看网卡信息 2.修改yaml配置文件 3.应用新的网络配置 4.重新启动网络服务 文章内容 本文介绍Ubuntu 22.04.3 Server系统通过修改yaml配置文件配置静态 ip 的方法。 1.查看网卡信息 使用ifconfig命令查看网卡信息获取网卡名称​ 如果出现Command ifconfig not fo…

郑州网站建设公司排行榜wordpress主题如何汉化

人每时每刻都要呼吸&#xff0c;呼吸是生命得以存在的基础。不过人类赖以生存的氧气并不是地球上含量最高的气体&#xff0c;地球上含量最高的气体是氮气。在地球的大气之中&#xff0c;氮气的含量占到了78%&#xff0c;而氧气的含量排名第二&#xff0c;约为21%。我们经常会提…

自己免费怎么制作网站吗家纺网站模板

一个网站中&#xff0c;大部分网页的模块是重复的&#xff0c;比如顶部的导航栏&#xff0c;底部的备案信息。如果在每个页面中都重复的去写这些代码&#xff0c;会让项目变得臃肿&#xff0c;提高后期维护成本。比较好的做法是&#xff0c;通过模板继承&#xff0c;把一些重复…

html5响应式公司网站模版专业建设企业网站

众所周知&#xff0c;网络安全是一个非常重要的课题&#xff0c;而服务器是网络安全中最关键的环节。Linux被认为是一个比较安全的Internet服务器&#xff0c;作为一种开放源代码操作系统&#xff0c;一旦Linux系统中发现有安全漏洞&#xff0c;Internet上来自世界各地的志愿者…

软件工程感想

软件工程感想 在之前的概念里,我一直觉得软件开发就等于“写代码”——只要熟练掌握一门编程语言,能把想法用代码实现出来,就是一个合格的程序员了。然而,上了第一堂课之后,我发现自己之前的理解实在是太狭隘了。…

n8n+MySQL实现数据库查询!

为什么使用了 n8n 之后,会觉得惊喜? 因为使用他实在太方便了,但让这里的方便不单是本地部署、升级上的方便(dify 要启动 7 个服务,coze 要启动 9 个服务,而 n8n 一个服务就搞定了),而是他整体的便利性。例如他…

My Tricks

tricks 和注意事项 【数据删除】构造题!!! 杂项多测未清空 没开 long long 如果正面处理不方便,可以考虑拆单个的贡献然后用差分 跳来跳去的或要操作很多次的考虑倍增 判断等比数列时考虑正负性,并用比例的性质来…