Мое решение ограничено только этим изображением, где карта находится близко и горизонтально.
!wget https://i.stack.imgur.com/46VsT.jpg
прочитано на изображении.
import matplotlib.pyplot as plt
import numpy as np
import imageio
# rgb to gray https://stackoverflow.com/a/51571053/868736
im = imageio.imread('46VsT.jpg')
gray = lambda rgb : np.dot(rgb[... , :3] , [0.299 , 0.587, 0.114])
gray = gray(im)
image = np.array(gray)
plt.imshow(image,cmap='gray')
![enter image description here](https://i.stack.imgur.com/9x5Tq.png)
import numpy as np
import skimage
from skimage import feature
from skimage.transform import probabilistic_hough_line
import matplotlib.pyplot as plt
from matplotlib import cm
найти горизонтальные ребра с некоторыми ограничениями.
edges = np.abs(skimage.filters.sobel_h(image))
edges = feature.canny(edges,1,100,200)
plt.imshow(edges,cmap='gray')
![enter image description here](https://i.stack.imgur.com/AQRG4.png)
найти горизонтальные линии с большим количеством ограничений.
# https://scikit-image.org/docs/dev/auto_examples/edges/plot_line_hough_transform.html
lines = probabilistic_hough_line(edges, threshold=1, line_length=200,line_gap=100)
plt.imshow(edges * 0,cmap='gray')
for line in lines:
p0, p1 = line
plt.plot((p0[0], p1[0]), (p0[1], p1[1]),color='red')
![enter image description here](https://i.stack.imgur.com/hlluh.png)
использовать обнаруженные линии для получения интересующей области.
# https://scikit-image.org/docs/dev/auto_examples/edges/plot_convex_hull.html
from skimage.morphology import convex_hull_image
canvas = edges*0
for line in lines:
p0, p1 = line
canvas[p0[1],p0[0]]=1
canvas[p1[1],p1[0]]=1
chull = convex_hull_image(canvas)
plt.imshow(chull,cmap='gray')
![enter image description here](https://i.stack.imgur.com/wEKAM.png)
... но почему?;)
Я сомневаюсь, что вышеупомянутое решение на самом деле будет работать "в производстве" ... если у вас есть ресурс, я бы пошел на модифицированную модель YOLO и потратил бы ресурс на создание хорошего набора данных для обучения (акцент на "ХОРОШЕМ" наборе данных, но вы должны определить, что хорошего в первую очередь ...), посмотрите это видео для вдохновения, https://www.youtube.com/watch?v=pnntrewH0xg