当前位置: 首页 > news >正文

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

在许多验证码图像中,存在大量有意添加的干扰线条、弯曲波纹或背景噪声,这些设计是为了阻止自动识别。传统空间域的二值化方法往往无法彻底去除这些干扰,导致 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.jsqmd.com/news/2397/

相关文章:

  • Feminism in China
  • 大模型微调示例四之Llama-Factory-DPO - 教程
  • 第9节-子查询-ALL - 详解
  • 软件工程感想
  • n8n+MySQL实现数据库查询!
  • My Tricks
  • 完整教程:机器学习入门,支持向量机
  • firewalld 端口流量转发
  • [PaperReading] Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any Resolution
  • 谈谈对软件工程的理解
  • [PaperReading] MemGPT: Towards LLMs as Operating Systems
  • 总线的性能指标
  • VoxCPM:新一代高拟真语音生成模型
  • Day20封装的初步认识
  • 【Qt开发】显示类控件(三)-> QProgressBar - 详解
  • 完整教程:数据结构与算法-树和二叉树-二叉树的存储结构(Binary Tree)
  • 工业相机与镜头靶面尺寸的关系:从原理到选型的避坑指南 - 教程
  • 提供优雅报错能力
  • Security Onion Solution
  • 详细介绍:MySQL进阶学习
  • 时序数据库 TimechoDB V2.0.6 发布 | 新增查询写回、黑白名单等功能
  • NLP:驱动人工智能迈向 “理解” 与 “对话” 的核心引擎 - 教程
  • Python精品任务-基于python的个性化音乐推荐架构的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 旧手机改服务器-旧Android手机改Linux服务器Termux方案
  • 第二篇
  • 实用指南:网站抓包怎么做?(网站抓包教程 HTTPS 抓包 浏览器抓包 服务器端流量分析 网站安全与调试)
  • 学习嵌入式的第三十二天——网络编程——TCP - 实践
  • EasyDSS “进度条预览”黑科技,如何重塑视频点播的交互体验?
  • 2025 年在线 Excel 协作工具:纯前端架构引领协作范式革新
  • AI重塑招聘:从筛简历到做决策,HR如何借技术提效35%?