Как мне обрезать все места изображения через массив точек np. в Python? - PullRequest
0 голосов
/ 31 января 2019

Я настраиваю цикл for, чтобы обрезать различные части изображения из моего np.array из 22. Как правильно настроить цикл for и чтобы он работал быстро?

Я знаю, что янужен пустой массив, чтобы положить урожай.

crop_array = np.empty([])



#test with y1,y2,x1,x2 points 
rect = np.array([[137,166,14,80],[174,204,14,80],[214,244,14,80], 
[252,282,14,80],[290,320,14,80],[328,358,14,80],[366,396,14,80], 
[402,432,14,80],[65,94,161,227],[102,131,199,265],[139,168,234,300], 
[179,208,270,336],[217,246,306,372],[254,283,344,410],[293,322,381,447],
[65,94,235,301],[102,131,273,339],[139,168,308,374],[179,208,344,410], 
[217,246,380,446],[254,283,418,478]])

#this is one point and works
crop0 = small2gray[137:166,14:80].copy()

1 Ответ

0 голосов
/ 01 февраля 2019

С учетом np.array, заданного для rect.

#y1,y2,x1,x2 points within each list
rect = np.array([[137,166,14,80],[174,204,14,80],[214,244,14,80], 
[252,282,14,80],[290,320,14,80],[328,358,14,80],[366,396,14,80], 
[402,432,14,80],[65,94,161,227],[102,131,199,265],[139,168,234,300], 
[179,208,270,336],[217,246,306,372],[254,283,344,410],[293,322,381,447],
[65,94,235,301],[102,131,273,339],[139,168,308,374],[179,208,344,410], 
[217,246,380,446],[254,283,418,478]])

#For loop to contents of list that are nested
for (a,b,c,d) in rect:
   #Crop ROI Location
   crop_empty = smallgray[a:b,c:d].copy()
   crop = small2gray[a:b,c:d].copy

Сайт, объясняющий вложенные списки.https://cognitiveclass.ai/blog/nested-lists-multidimensional-numpy-arrays/

Вот видео объяснения.https://www.youtube.com/watch?v=rUDdguWk-QQ

...