python 调用 opencv 实现 图片文本倾斜校正

摘要:
这个项目是一个python项目。您需要安装python及其opencv模块:opencv_python 4.0.1-cp37-cp37m-win32.whl和python的矩阵运算模块:numpy。1.步骤1:安装python 3.7,具体安装步骤省略。2.第2步,使用pip安装python的矩阵操作模块:numpy。python mpipinstall—使用

本项目为python项目需要安装python及python的opencv模块:opencv_python-4.0.1-cp37-cp37m-win32.whl 和 python的矩阵运算模块:numpy。

       1、第一步,安装python3.7,具体安装步骤略。

       2、第二步,使用pip安装python的矩阵运算模块:numpy。

       python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

  3,第三步,使用pip安装python的opencv模块:opencv_python。

(1)     先去官网https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv,下载相应Python版本的OpenCV的whl文件,如本人下载的opencv_python‑3.4.1‑cp36‑cp36m‑win_amd64.whl(此文件已经下载并在项目压缩包里)

 python 调用 opencv 实现 图片文本倾斜校正第1张

(2)     将下载的whl文件放入python的Libsite-packages文件夹,我文件路径为:C:UserspangguomingAppDataLocalProgramsPythonPython37-32Libsite-packages

(3)     用pip安装此文件

pip install opencv_python-4.0.1-cp37-cp37m-win32.whl

4、第四步,运行python脚本imgtxtcorr.py ,此脚本将读取当前目录下的1.jpg文件进行校正,并打开校正后的图片。


# -*- coding: UTF-8 -*- import numpy as np import cv2 ## 图片旋转 def rotate_bound(image, angle): #获取宽高 (h, w) = image.shape[:2] (cX, cY) = (w // 2, h // 2) # 提取旋转矩阵 sin cos M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0) cos = np.abs(M[0, 0]) sin = np.abs(M[0, 1]) # 计算图像的新边界尺寸 nW = int((h * sin) + (w * cos)) # nH = int((h * cos) + (w * sin)) nH = h # 调整旋转矩阵 M[0, 2] += (nW / 2) - cX M[1, 2] += (nH / 2) - cY return cv2.warpAffine(image, M, (nW, nH),flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE) ## 获取图片旋转角度 def get_minAreaRect(image): gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) gray = cv2.bitwise_not(gray) thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1] coords = np.column_stack(np.where(thresh > 0)) return cv2.minAreaRect(coords) image_path = "54321.png" image = cv2.imread(image_path) angle = get_minAreaRect(image)[-1] rotated = rotate_bound(image, angle) cv2.putText(rotated, "angle: {:.2f} ".format(angle), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) # show the output image print("[INFO] angle: {:.3f}".format(angle)) cv2.imshow("imput", image) cv2.imshow("output", rotated) cv2.waitKey(0)

  

 可矫正所有 图片格式包括 png jpg tif等

python 调用 opencv 实现 图片文本倾斜校正第2张

 

免责声明:文章转载自《python 调用 opencv 实现 图片文本倾斜校正》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringCloud之Config配置中心+BUS消息总线原理及其配置74HC595 8位移位寄存器的使用小结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python 并发总结,多线程,多进程,异步IO

1 测量函数运行时间 importtime defprofile(func): def wrapper(*args, **kwargs): importtime start =time.time() func(*args, **kwargs) end =time.time()...

python 把数据 json格式输出

有个要求需要在python的标准输出时候显示json格式数据,如果缩进显示查看数据效果会很好,这里使用json的包会有很多操作 import json date = {u'versions': [{u'status': u'CURRENT', u'id': u'v2.3', u'links': [{u'href': u'http://controll...

python 绘图---2D、3D散点图、折线图、曲面图

python中绘制2D曲线图需要使用到Matplotlib,Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。 1. 绘制折线图 plt.plot() 可以用于绘制折线图。...

python- 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # author:zml LOGIN_INFO=False IS_ADMIN=False defcheck_log(func): definner(): res=func() ifLOGIN_INFO: print('验证成功!') return...

pipenv

一。 1. 使用pip安装pipenv及其相关依赖 pip install pipenv 2. 将目录更改为包含你的Python项目的文件夹,并启动Pipenv cd my_project pipenv install 这将在项目目录中创建两个新文件Pipfile和Pipfile.lock, 为pipenv包的配置文件,代替原来的 requirement...

python——模块(Module)的概念、使用以及安装第三方模块

一、模块定义 python中,一个.py文件就是一个模块(Module)。使用模块的好处:1、提高了代码的可维护性。我们把函数进行分组,分别放在不同的模块中。2、编写代码不必要从0开始,当一个模块编写完毕,就可以被其他的模块引用。python有很多内置的模块和第三方模块供引用。3、可以避免函数名和变量名重复。相同的函数名和变量名可以同时存在于不同的模块中。...