После комментария @ efirvida, вот очень базовый c подход к тому, как это сделать.
Он просто проверяет, равна ли каждая строка пикселей на данном изображении по значению первой строке, содержащей пунктирную линию, а затем обрезает изображение, чтобы разделить его на несколько изображений ...
# import image/array manipulation packages
import cv2
import numpy as np
# read image with OpenCV 2
img = cv2.imread("path/to/file/z4Xje.jpg")
# identify one line of pixels that has dashes
dashes = img[761,:,:]
# check where to split the picture and store that information
splits = [0]
for i in range(img.shape[0]):
# np.allclose allows you to have small differences between dashed lines
if np.allclose(img[i,:,:], dashes):
splits.append(i)
# add last split (height of picture)
splits.append(img.shape[0])
# write each cropped picture to your desired directory
for j in range(len(splits)-1):
new_img = img[splits[j]:splits[j+1],:]
cv2.imwrite("/path/to/export/"+str(j)+".jpg", new_img)
Это определенно не идеальное решение, но я надеюсь, что оно даст вам подсказки о том, как улучшить ваш текущий алгоритм!
Это дало мне эти картинки для того, что вы предоставили: