Python 在两行之间添加空格

Python 在两行之间添加空格,python,opencv,python-imaging-library,Python,Opencv,Python Imaging Library,我需要使用OpenCV或PIL在两行之间添加空间 如果线的长度变化足够大,则以下方法可能有用: 使用反向二值化图像。 使用水平线核心放大图像,以强调线条。 使用对所有像素行进行求和,并使用计算行之间的绝对差值。 行与行之间的差异将有步骤,类似于行与行之间的步骤。设置阈值,并使用查找适当的索引。 在找到索引之前,使用在原始图像中插入白线。在下面的示例中,索引是手动选择的。必须做一些工作来正确地实现自动化:将步骤排除到后台,在多行之间查找步骤。 下面是一段代码片段: 进口cv2 从matplotli

我需要使用OpenCV或PIL在两行之间添加空间


如果线的长度变化足够大,则以下方法可能有用:

使用反向二值化图像。 使用水平线核心放大图像,以强调线条。 使用对所有像素行进行求和,并使用计算行之间的绝对差值。 行与行之间的差异将有步骤,类似于行与行之间的步骤。设置阈值,并使用查找适当的索引。 在找到索引之前,使用在原始图像中插入白线。在下面的示例中,索引是手动选择的。必须做一些工作来正确地实现自动化:将步骤排除到后台,在多行之间查找步骤。 下面是一段代码片段:

进口cv2 从matplotlib导入pyplot作为plt 将numpy作为np导入 从仅用于web抓取图像的skimage导入io中,对本地图像使用cv2.imread 读取和二值化图像 image=cv2.cvtColorio.imread'https://i.stack.imgur.com/56g7s.jpg,cv2.COLOR_rgb2灰色 _,image\u bin=cv2.thresholdimage,128255,cv2.threshold\u BINARY\u INV 以水平线为核心展开行 内核=np.ones1,51,np.uint8 image\u dil=cv2.0映像\u bin,内核 按行求和像素,并计算行之间的绝对差值 行总和=np.SUMMIMAGE\U dil/255,1,数据类型=np.int32 行和差=np.absnp.diffrow和 仅用于可视化:按行求和像素 plt.plot行和 节目 在行之间的差异中查找步骤 步骤_thr=100 步骤idx=np.whererow\u sum\u diff>step\u thr[0] 在所需索引前插入n行;简单的硬编码在这里,更多的工作需要做的多行 n_线=5 image\u mod=np.insertimage,step\u idx[1]+1255*np.onesn\u线,image.shape[1],np.uint8,轴=0 结果可视化 cv2.imshow‘image’,image cv2.imshow'image_dil',image_dil cv2.imshow'image\u mod',image\u mod cv2.0 cv2.1所有窗口 放大的反向二值化图像:

步骤的可视化:

插入n=5条白线的最终输出:

正如您所见,结果并不完美,但这是由于原始图像造成的。在相应的行中,有第一行和第二行的部分。因此,这两者之间不可能有适当的区别。我们可以在输出端添加一个非常小的形态,以消除这些伪影


希望有帮助

您知道要添加空间的高度像素吗?非常感谢您的快速响应和令人惊叹的回答。