【问题标题】:How do I crop all locations of image through a np.array of points within python?如何通过 python 中的 np.array 点裁剪图像的所有位置?
【发布时间】:2019-01-31 19:20:11
【问题描述】:

我正在设置一个 for 循环,以从我的 22 的 np.array 中裁剪图像的不同部分。如何正确设置 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()

【问题讨论】:

    标签: python-3.x for-loop numpy-ndarray


    【解决方案1】:

    鉴于为 rect 给出的 np.array。

    #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

    【讨论】:

      猜你喜欢
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 2013-03-25
      相关资源
      最近更新 更多