Function to cut image into smaller images.
This commit is contained in:
parent
76e3023750
commit
62c0f3bc94
26
mini_proj/_cutter.py
Normal file
26
mini_proj/_cutter.py
Normal file
@ -0,0 +1,26 @@
|
||||
import numpy as np
|
||||
|
||||
def image_cut(image, size0, size1):
|
||||
"""
|
||||
Takes an image and cuts it into smaller images of specified dimensions.
|
||||
Images must be cut before axis rolling.
|
||||
"""
|
||||
dims = image.shape
|
||||
assert dims[0] >= size0
|
||||
assert dims[1] >= size1
|
||||
return np.array([image[size0 * i:size0 * (i+1), size1 * j:size1 * (j+1)] \
|
||||
for i in range(dims[0] // size0) for j in range(dims[1] // size1)] + \
|
||||
[image[size0 * i:size0 * (i+1), dims[1]-size1:] \
|
||||
for i in range(dims[0] // size0) if dims[1] % size1 != 0] + \
|
||||
[image[dims[0]-size0:, size1 * j:size1 * (j+1)] \
|
||||
for j in range(dims[1] // size1) if dims[0] % size0 != \
|
||||
)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# test = np.random.rand(5,4,3)
|
||||
test = np.array([[
|
||||
k + 4*j for k in range(4)
|
||||
] for j in range(5)])
|
||||
print(test)
|
||||
print(image_cut(test, 2, 2))
|
Reference in New Issue
Block a user