图像预处理

在ocr处理时候,可能遇到的图片会是倾斜的,导致检测不全问题,进而影响后续识别问题。

常见的倾斜矫正方法

  • 霍夫变换轮廓检测
  • randon 变换
  • 基于PCA的方法

radon变换

本节说下randon变换

  • 基本原理
    Radon(拉东)算法是一种通过定方向投影叠加,找到最大投影值时角度,从而确定图像倾斜角度的算法。具体过程如图所示

  • 实现

import cv2
import sys
import time
import numpy as npfrom skimage.transform import radonfilename = sys.argv[1]
# Load file, converting to grayscale
t1 = time.time()
img = cv2.imread(filename)
I = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
h, w = I.shape
# If the resolution is high, resize the image to reduce processing time.
# lower resolution, lower process time.
"""
if (w > 640):I = cv2.resize(I, (640, int((h / w) * 640)))
"""
if (w > 240):I = cv2.resize(I, (240, int((h / w) * 240)))I = I - np.mean(I)  # Demean; make the brightness extend above and below zero
# Do the radon transform
sinogram = radon(I)
# Find the RMS value of each row and find "busiest" rotation,
# where the transform is lined up perfectly with the alternating dark
# text and white lines
r = np.array([np.sqrt(np.mean(np.abs(line) ** 2)) for line in sinogram.transpose()])
rotation = np.argmax(r)
print('Rotation: {:.2f} degrees'.format(90 - rotation))# Rotate and save with the original resolution
M = cv2.getRotationMatrix2D((w/2, h/2), 90 - rotation, 1)
t2 = time.time()
print(t2-t1)
dst = cv2.warpAffine(img, M, (w, h))
cv2.imwrite('rotated.jpg', dst)
cv2.imshow('dst', dst)
cv2.waitKey()

结果

参考

  • https://gist.github.com/endolith/334196bac1cac45a4893#file-rotation_spacing-py
  • https://www.cnblogs.com/skyfsm/p/6902524.html
  • https://blog.csdn.net/carson2005/article/details/40535199

ocr 图像倾斜矫正-radon变换相关推荐

  1. ocr 图像倾斜矫正-霍夫变换

    图像预处理 在ocr处理时候,可能遇到的图片会是倾斜的,导致检测不全问题,进而影响后续识别问题. 常见的倾斜矫正方法 霍夫轮廓检测 randon 变换 基于PCA的方法 霍夫变换 基本原理 可以识别图 ...

  2. 图像倾斜校正 Radon 变换原理及函数

    radon校正 Radon(拉东)算法是一种通过定方向投影叠加,找到最大投影值时角度,从而确定图像倾斜角度的算法.具体过程如图所示 拉东变换 若函数F表示一个未知的密度,对F做radon变换,相当于得 ...

  3. python车牌矫正_radon变换用于车牌图像倾斜矫正[水平倾斜和垂直倾斜]

    Radon变换定义:下图显示了在指定的旋转角度的单一投影.间距为1个像素的平行光穿过图像,则radon变换计算穿过图像长度上的积分,即  式中  旋转角度为θ的平行束投影 f(x,y) 在垂直方向的线 ...

  4. python图像倾斜校正_图像倾斜矫正

    没有找到关于图像倾斜矫正的综述性文献,那就自己整理一下吧. 图像倾斜可以分为两种情况,一种是平面倾斜,这种情况下拍照设备与试卷平行,拍出来的图像只需要进行旋转即可完成矫正:另一种是Z轴倾斜,这种情况下 ...

  5. coreldraw矫正两张图_coreldraw软件怎样图像倾斜矫正?

    coreldraw软件怎样图像倾斜矫正? 选中一个位图图像.我们可以看到这张位图的海平面是呈斜线形状的. 单击位图,执行"位图"→"矫正图像"命令. 矫正图像对 ...

  6. C# OpenCV EmguCV实现扫描文本图像倾斜矫正 实现详解(附源码)

    一.扫描文本倾斜矫正 实现步骤可以参考如下链接: https://blog.csdn.net/stq054188/article/details/120031667?spm=1001.2014.300 ...

  7. python实现文档图像倾斜矫正,实现类似扫描仪功能

    图片中文档提取与矫正,实现类似扫描仪功能 第一个文档,scan.py 第二个文档,transform .py 第三个文档,imgEnhance.py 效果图 这几天看见一个软件,可以手机拍照一个文档, ...

  8. OpenCV图像处理实际案例(一)---图像倾斜矫正(仿射变换)和去边(轮廓查找+ROI提取)

    https://blog.csdn.net/qq_41248872/article/details/93883978

  9. python图像倾斜校正_python 图像倾斜校正

    图像倾斜可以分为两种情况,一种是平面倾斜,这种情况下拍照设备与试卷平行,拍出来的图像只需要进行旋转即可完成矫正:另一种是Z轴倾斜,这种情况下拍照设备与试卷存在一定的角度,拍出来的图像要先进行透视变换, ...

最新文章

  1. 为什么DOM操作很慢
  2. css制作圆角矩形,CSS绘制圆角矩形图形的效果
  3. python通过connect对象连接数据库对吗_Python连接数据库学习之DB-API详解
  4. Scala模式匹配和类型系统
  5. 微信看一看强化学习推荐模型的知识蒸馏探索之路丨CIKM 2021
  6. 华科大计算机跨考,华中科大计算机概况_跨考网
  7. 《统计学习方法》python代码资料
  8. 设置页眉为计算机网络,word文档设置页眉线如题,怎么设置上边的 – 手机爱问...
  9. 制作自己的 Cydia 源
  10. 国外问卷调查做快点有影响吗
  11. 盘点中国顶级黑客Top10,雷军也名列其中!
  12. 笔记本电脑dns电脑服务器未响应如何处理,提示dns电脑服务器未响应如何处理?...
  13. Android AndroidManifest 文件详解
  14. 洛谷 P2357 守墓人(树状数组)
  15. android开发出现错误:Failed to find configured root that contains
  16. 运算放大器:电压比较器、电压跟随器、同相比例放大器
  17. 银行存钱利率最大化问题C语言
  18. 项目五 定期存款利息计算器
  19. 创新:颠覆笔记本音响系统!Audigy
  20. Excel 仪表盘教程之 01 什么是 Excel 仪表板,它与报表有何不同?(Dashboard教程含数据)

热门文章

  1. python知识回顾(列表与字符串)
  2. 京东末位淘汰 10% 高管 ;聊天宝惊现大 Bug:用户可提现百万;斗鱼回应“人去楼空” | 极客头条...
  3. 解决file_get_contents无法请求https连接的方法
  4. Ubuntu使用+Thinkphp5学习——17(报错Warning: require(/var/www/html/tp5-github/public/../thinkphp/start.php):)
  5. 微投抖的1080_真假1080P投影仪?送你火眼金睛!
  6. Python编程快速上手,让繁琐工作自动化
  7. 实拍分享:新中式护墙板客厅装修效果图
  8. 同义词替换,停词去除
  9. Qt Designer工具的使用
  10. 用CMD命令打开事件查看器