有没有一种方法可以加快python中的嵌套for循环?

恩里科·莫斯卡(Enrico Mosca)

我只是想知道这是否是一种加快Python中for循环性能的方法。

for i in range (0,img.shape[0],new_height):
    for j in range(0,img.shape[1],new_width):
        cropped_image = img[i:i+new_height,j:j+new_width]
        yuv_image = cv2.cvtColor(cropped_image,cv2.COLOR_BGR2YUV)
        Y,U,V = cv2.split(yuv_image)
        pixel_image_y = np.array(Y).flatten()
迪卡卡

将整个图像转换为YUV空间后,我们可以简单地重塑成较小的块-

m,n = img.shape[:2]
yuv = cv2.cvtColor(img,cv2.COLOR_BGR2YUV)
yuv4D = yuv[...,0].reshape(m//new_height,new_height,n//new_width,new_width)
out = yuv4D.swapaxes(1,2).reshape(-1,new_height*new_width)

1024x1024 RGB影像上的时序-

In [157]: img = np.random.randint(0,256,(1024,1024,3)).astype(np.uint8)
     ...: new_height,new_width = 32,32

In [158]: %%timeit
     ...: out = []
     ...: for i in range (0,img.shape[0],new_height):
     ...:     for j in range(0,img.shape[1],new_width):
     ...:         cropped_image = img[i:i+new_height,j:j+new_width]
     ...:         yuv_image = cv2.cvtColor(cropped_image,cv2.COLOR_BGR2YUV)
     ...:         Y,U,V = cv2.split(yuv_image)
     ...:         pixel_image_y = np.array(Y).flatten()
     ...:         out.append(pixel_image_y)
11.9 ms ± 991 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [159]: %%timeit
     ...: m,n = img.shape[:2]
     ...: yuv = cv2.cvtColor(img,cv2.COLOR_BGR2YUV)
     ...: yuv4D = yuv[...,0].reshape(m//new_height,new_height,n//new_width,new_width)
     ...: out1 = yuv4D.swapaxes(1,2).reshape(-1,new_height*new_width)
1.48 ms ± 5.23 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法可以简化Python中的“循环” /“循环”交互?

来自分类Dev

有没有一种方法可以简化R中利用循环的函数?

来自分类Dev

有没有一种方法可以循环遍历plsql中的选定列

来自分类Dev

有没有一种方法可以在Python 3+中对嵌套列表进行排序?

来自分类Dev

有没有一种方法可以加快此查询的速度?

来自分类Dev

有没有一种方法可以加快触摸/点击检测?

来自分类Dev

有没有一种方法可以加快此MySQL删除查询的速度?

来自分类Dev

有没有一种方法可以在Python中禁用数组边界检查?

来自分类Dev

有没有一种方法可以检查函数是否在python中是递归的?

来自分类Dev

有没有一种方法可以在Windows上的python中运行命令?

来自分类Dev

有没有一种方法可以比较python中枚举的内容?

来自分类Dev

有没有一种方法可以在Python中实现全局计算属性?

来自分类Dev

有没有一种方法可以在python库pywhatkit中定义变量?

来自分类Dev

有没有一种方法可以在Python中为文本着色?

来自分类Dev

有没有一种方法可以使用postgres在activerecord中搜索深度嵌套的json?

来自分类Dev

有没有一种方法可以为Typescript中的嵌套键访问创建类型保护?

来自分类Dev

(Lodash) 有没有一种方法可以检查集合中是否存在(嵌套)相同的对象?

来自分类Dev

有没有一种方法可以将列表理解重写为for循环?

来自分类Dev

有没有一种方法可以在循环结束时打印?

来自分类Dev

有没有一种方法可以使for循环沿列表的元素重复?

来自分类Dev

有没有一种方法可以使bash for循环并行化?

来自分类Dev

有没有一种方法可以将列表理解重写为for循环?

来自分类Dev

lua中有没有一种方法可以在表中查找值而不循环?

来自分类Dev

在nodeJs中,有没有一种方法可以循环使用数组而不使用数组大小?

来自分类Dev

有没有一种方法可以循环使用C中的四个基本操作?

来自分类Dev

有没有一种方法可以编码for循环,以便它不会在序列中递增?

来自分类Dev

有没有一种方法可以获取列表中的每个元素而不使用循环?

来自分类Dev

有没有一种方法可以从通过循环创建的表中设置$ _SESSION变量

来自分类Dev

有没有一种方法可以在Linux中循环执行控制台命令?

Related 相关文章

  1. 1

    有没有一种方法可以简化Python中的“循环” /“循环”交互?

  2. 2

    有没有一种方法可以简化R中利用循环的函数?

  3. 3

    有没有一种方法可以循环遍历plsql中的选定列

  4. 4

    有没有一种方法可以在Python 3+中对嵌套列表进行排序?

  5. 5

    有没有一种方法可以加快此查询的速度?

  6. 6

    有没有一种方法可以加快触摸/点击检测?

  7. 7

    有没有一种方法可以加快此MySQL删除查询的速度?

  8. 8

    有没有一种方法可以在Python中禁用数组边界检查?

  9. 9

    有没有一种方法可以检查函数是否在python中是递归的?

  10. 10

    有没有一种方法可以在Windows上的python中运行命令?

  11. 11

    有没有一种方法可以比较python中枚举的内容?

  12. 12

    有没有一种方法可以在Python中实现全局计算属性?

  13. 13

    有没有一种方法可以在python库pywhatkit中定义变量?

  14. 14

    有没有一种方法可以在Python中为文本着色?

  15. 15

    有没有一种方法可以使用postgres在activerecord中搜索深度嵌套的json?

  16. 16

    有没有一种方法可以为Typescript中的嵌套键访问创建类型保护?

  17. 17

    (Lodash) 有没有一种方法可以检查集合中是否存在(嵌套)相同的对象?

  18. 18

    有没有一种方法可以将列表理解重写为for循环?

  19. 19

    有没有一种方法可以在循环结束时打印?

  20. 20

    有没有一种方法可以使for循环沿列表的元素重复?

  21. 21

    有没有一种方法可以使bash for循环并行化?

  22. 22

    有没有一种方法可以将列表理解重写为for循环?

  23. 23

    lua中有没有一种方法可以在表中查找值而不循环?

  24. 24

    在nodeJs中,有没有一种方法可以循环使用数组而不使用数组大小?

  25. 25

    有没有一种方法可以循环使用C中的四个基本操作?

  26. 26

    有没有一种方法可以编码for循环,以便它不会在序列中递增?

  27. 27

    有没有一种方法可以获取列表中的每个元素而不使用循环?

  28. 28

    有没有一种方法可以从通过循环创建的表中设置$ _SESSION变量

  29. 29

    有没有一种方法可以在Linux中循环执行控制台命令?

热门标签

归档