opencv - 使用 OpenCV 从条形码图像中检测和消除倾斜
问题描述
我想使用 Python OpenCV 从条形码图像创建一个通用的倾斜检测和校正程序。有谁知道如何实现这个功能?
请参阅下面的一些图像示例: 在此处输入图像描述
我将非常感谢实现此功能的任何帮助/指导。
非常感谢和亲切的问候, B
解决方案
我想你想要一个Canny()
and的组合HoughLines()
。Canny 会检测线条,然后 Hough 变换会创建包含线条角度的记录。然后,您可以通过平均检测到的线角度或类似的东西来转换图像。
import cv2
import numpy as np
img = cv2.imread('dave.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
lines = cv2.HoughLines(edges,1,np.pi/180,200)
for rho,theta in lines[0]:
a = np.cos(theta)
b = np.sin(theta)
x0 = a*rho
y0 = b*rho
x1 = int(x0 + 1000*(-b))
y1 = int(y0 + 1000*(a))
x2 = int(x0 - 1000*(-b))
y2 = int(y0 - 1000*(a))
cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)
cv2.imwrite('houghlines3.jpg',img)
推荐阅读
- mongodb - 根据对象中的值使用不同的步骤
- dataframe - Spark 检查点导致连接问题
- webpack - 如何实现我想要将一个捆绑文件拆分为两个捆绑文件的捆绑拆分?
- ruby-on-rails - ROR (MVC): Where to put this code? write function in model or write 2 script in controller and service?
- javascript - 没有“访问控制允许来源”的事情
- python - 问:“多边形”对象在模型 hddm 中没有“规范”属性
- javascript - 你如何在javascript中获取网页上特定像素的颜色?(没有画布)
- r - 如何从 R 中的另一个数据框填充数据框?
- javascript - 为什么第四个选项卡不显示任何数据,但前三个选项卡显示?
- python - 第一个符号未打印,但其余符号正常打印