扫描文件的倾斜矫正策略——v 1.0

news/2024/11/25 8:59:05/

        对于扫描仪扫面图像可能出现略微倾斜或二值化A3试卷照片后,对倾斜文档图像进行旋转矫正~

原图:

代码:

import cv2
import numpy as npdef show(img):cv2.namedWindow('img', 0)cv2.imshow('img', img)cv2.waitKey(0)def binary_(img):gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)return binary# 旋转angle角度,缺失背景白色(255, 255, 255)填充
def rotate_bound_white_bg(image, angle):# grab the dimensions of the image and then determine the# center(h, w) = image.shape[:2](cX, cY) = (w // 2, h // 2)# grab the rotation matrix (applying the negative of the# angle to rotate clockwise), then grab the sine and cosine# (i.e., the rotation components of the matrix)# -angle位置参数为角度参数负值表示顺时针旋转; 1.0位置参数scale是调整尺寸比例(图像缩放参数),建议0.75M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0)cos = np.abs(M[0, 0])sin = np.abs(M[0, 1])# compute the new bounding dimensions of the imagenW = int((h * sin) + (w * cos))nH = int((h * cos) + (w * sin))# adjust the rotation matrix to take into account translationM[0, 2] += (nW / 2) - cXM[1, 2] += (nH / 2) - cY# perform the actual rotation and return the image# borderValue 缺失背景填充色彩,此处为白色,可自定义return cv2.warpAffine(image, M, (nW, nH), borderValue=(255, 255, 255))def paper_rotate(img):# 扫描机————A3样式纸张角度矫正# gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)binary = binary_(img)# rotate_img = Transformation(binary, img)coords = np.column_stack(np.where(binary > 0))angle = cv2.minAreaRect(coords)[-1]  # 最小外接矩形print(angle)if angle < -45:angle = 88 + angleelse:angle = angle - 2rotate_img = rotate_bound_white_bg(img,angle)return rotate_imgif __name__ == '__main__':import timepath = '../ImgTest/4.jpg'img = cv2.imread(path)print(img.shape)s = time.time()rotate_img = paper_rotate(img)e = time.time()print(rotate_img.shape)print(f"耗时{e - s}")show(rotate_img)

 效果:

 边缘填充的白色像素去除就很容易了,图像旋转后属于无损图像,不用担心图像出模糊情况,就是图像会变大,哈哈哈~


http://www.ppmy.cn/news/464122.html

相关文章

什么是发票扫描仪

什么是发票扫描仪 总是说发票识别软件很厉害&#xff0c;能识别发票信息&#xff0c;能生成各种XML&#xff0c;Excel等等。 但是我们其实忽略了非常重要的一个环节&#xff0c;发票识别软件想要发挥强大的识别技能&#xff0c;前提是必须依托发票扫描仪这样给力的硬件&#…

wifi扫描流程图_扫描方法与流程

本发明涉及一种扫描方法&#xff0c;特别是一种可提升扫描准确率和响应速度的扫描方法。 背景技术&#xff1a; 很多用户喜欢移动扫描头或者扫描枪来扫描,特别是带扫描头或者扫描枪的平板计算机或者手机用户,不同的用户扫描方式会影响到扫描光线覆盖到扫描目标物(纸制条形码,手…

limited扫描仪 pfu_富士通子公司PFU的RPA案例分享

置身于快速变化的市场环境之中&#xff0c;高科技企业更需要减少重复性、低产值的工作&#xff0c;将人力运用到更到价值的业务中。而RPA正好契合企业的这一需求。 伴随企业数字化转型进程的不断加快&#xff0c;RPA将在未来发挥越来越重要的价值&#xff0c;客户的需求也将愈加…

VueScan Pro for Mac(扫描仪软件)破解教程

VueScan Pro for Mac是一款运行在Mac平台上的专业扫描仪软件&#xff0c;vuescan mac破解版具备出色的色彩保真度和色彩平衡的扫描&#xff0c;支持恢复褪色、批量扫描、自动剪取图像等实用的功能&#xff0c;vuescan pro 破解版还支持Epson、HP、Nikon等品牌的扫描仪设备。 vu…

扫描仪产品国家抽检实施细则及信息技术类产品检测设备

扫描仪&#xff0c;是一种捕获影像的装置&#xff0c;作为一种光机电一体化的电脑外设产品&#xff0c;扫描仪是继鼠标和键盘之后的第三大计算机输入设备&#xff0c;它可将影像转换为计算机可以 显示、编辑、存储和输出的数字格式&#xff0c;是功能很强的一种输入设备。在202…

android 扫描照片功能,巧把安卓手机打造成扫描仪:拍照识别文档、手写笔记转PDF(图)...

还有一个多月就要期末考试了&#xff0c;很多同学即将进入紧张的备考阶段&#xff0c;总结重点和摘录笔记是复习中的重头戏&#xff0c;但是书本上的知识点一般都很分散&#xff0c;如何有效利用手机提高复习效率&#xff0c;我们有好招&#xff01;今天就教大家把Android手机变…

地面三维激光扫描仪在火灾现场调查取证中的应用

火灾的发生会造成极大的危害&#xff0c;轻则损失财物&#xff0c;重则危害人身安全。 引发火灾的原因具有多样性和复杂性&#xff0c;因此&#xff0c;在火灾发生之后&#xff0c;须进行火灾调查以确定火灾发生原因&#xff0c;从而为进一步追究事故的责任、法律判定的依据、预…

树莓派应用:无线扫描仪

传统的扫描仪都是需要通过USB连接到PC上使用的。如果多人共用扫描仪&#xff0c;比如办公室里&#xff0c;需要经常插拔&#xff0c;更换PC&#xff0c;安装驱动&#xff0c;非常麻烦。现在搭载Android系统的智能扫描仪已经出现了&#xff0c;用户可以很方便的通过网络无线扫描…