对于图像,水平方向上的和竖直方向上的像素分布情况通常也会藏有许多信息,如图:
或许这还看不出些什么,再看:
这样就很明显了,竖直方向上连续像素不为0的区间肯定是数字的竖直位置,水平方向上的连续像素不为0的区间则有可能是数字的水平位置。
把统计数组画出来之后可以得到:
其中橙色的是竖直方向上的像素和的分布,蓝色的为水平方向的像素和的分布。
从曲线图中可以很明显的看出数字的分布,所以如果想要提取图像里面的代码可以这样做:
import numpy as np
import cv2
from matplotlib import pyplot as plt
def getImageHorizontalAndVerticalSum(ImageThre):
rows, cols = ImageThre.shape
horsum = []
versum = []
for i in range(cols):
val = np.array(ImageThre[:, i]).sum()
horsum.append(val)