如何使用Python中的OpenCV检测银行收据中的列,并将图像拆分为单独的文件?

如何使用Python中的OpenCV检测银行收据中的列,并将图像拆分为单独的文件?,python,opencv,image-processing,Python,Opencv,Image Processing,原始文件如下所示: 我需要检测包含数字数据的列,以便进一步处理 我使用以下方法获取我的列: # Detect vertical lines kernel = np.ones((35,1), np.uint8) # note this is a horizontal kernel d_im = cv2.dilate(image_channels, kernel, iterations=1) verticle_lines_img = cv2.erode(d_im, kernel, iterati

原始文件如下所示:

我需要检测包含数字数据的列,以便进一步处理

我使用以下方法获取我的列:

# Detect vertical lines
kernel = np.ones((35,1), np.uint8)  # note this is a horizontal kernel
d_im = cv2.dilate(image_channels, kernel, iterations=1)
verticle_lines_img = cv2.erode(d_im, kernel, iterations=5) 
cv2.imwrite("images/outputc3.jpg",verticle_lines_img)
结果是:


现在基于这个图像,我想将原始图像分割成子文件,其中每个文件都是只包含一个表的jpg或png图像。基于图像部分倾斜的事实,一列图像不必包含其他表格数据。

一个想法是使用
cv2.HoughLinesP()
检测垂直线,这将为您提供单独的列。然后找到轮廓并使用Numpy切片将每列提取到新图像中