目录
slidingwindow、sliding_window的简介
sliding_window
参考文章:http://stackoverflow.com/a/6822761
slidingwindow
这是一个简单的小Python库,用于将一组窗口计算成一个较大的数据集,设计用于图像处理算法,该算法使用滑动窗口将处理分解为一系列较小的块。此外,还可以指定一组可选转换,以应用于每个窗口。
还包括用于计算窗口距离矩阵的功能,用于需要考虑窗口中每个像素(相对于其中心)的位置的用例,以及用于批处理窗口和合并应用于窗口的处理结果的功能。
对于在生成窗口边界后需要修改它们的用例,可以将窗口对象转换为(x,y,w,h)元组表示的矩形。还提供了转换矩形的功能(填充、裁剪、强制方形宽高比等)。
还提供了创建NumPy数组的功能,如果可用的系统内存不足,该功能将回退到使用内存映射临时文件作为下划线数组缓冲区,以及确定生成窗口时可以使用的最大方形窗口大小。
sliding_window的安装
pip install sliding_window
pip install slidingwindow
sliding_window的使用方法
更新……
1. import slidingwindow as sw 2. import numpy as np 3. 4. # Load our input image here 5. # data = load(...) 6. 7. # Generate the set of windows, with a 256-pixel max window size and 50% overlap 8. windows = sw.generate(data, sw.DimOrder.HeightWidthChannel, 256, 0.5) 9. 10. # Do stuff with the generated windows 11. for window in windows: 12. subset = data[ window.indices() ] 13. # ... 14. 15. # Or, using some transformation functions 16. tranforms = [ 17. lambda m: np.fliplr(m), 18. lambda m: np.flipud(m), 19. lambda m: np.rot90(m, k=1, axes=(0, 1)), 20. lambda m: np.rot90(m, k=3, axes=(0, 1)) 21. ] 22. windows = sw.generate(data, sw.DimOrder.HeightWidthChannel, 256, 0.5, tranforms) 23. for window in windows: 24. transformed = window.apply(data) 25. # ... 26. 27. # Alternatively, if we want to modify each window 28. windows = sw.generate(data, sw.DimOrder.HeightWidthChannel, 256, 0.5) 29. for window in windows: 30. rect = window.getRect() 31. transformed = sw.padRectEqually(rect, 100, data.shape) 32. window.setRect(transformed) 33. # ...