NumPy Integration

Frame2D uses a NumPy array to store data. The array can be accessed with .data.

Get Slicing

For >=0.0.6

Note that this is only for get, that is, you can’t set frames via this interface yet.

This slicing uses the same method as NumPy, for example, ar[0,1], ar[0:40,20:30].

frame = Frame2D.from_image("path/to/file.jpg")
sliced_frame = frame[0:400, 200:300]

However, note that to get the channel dimension, you have to specify with its appropriate enums/strings.

frame = Frame2D.from_image("path/to/file.jpg")
sliced_frame = frame[0:400, 200:300, frame.CHN.RED]

You can also specify multiple channels, just no duplicates.

frame = Frame2D.from_image("path/to/file.jpg")
sliced_frame = frame[0:400, 200:300, [frame.CHN.RED, frame.CHN.GREEN]]

Ellipsis

Similar to NumPy, you can specify an Ellipsis to auto fill XY slicing.

frame = Frame2D.from_image("path/to/file.jpg")
sliced_frame_1 = frame[:, :, frame.CHN.RED]
sliced_frame_2 = frame[..., frame.CHN.RED]

sliced_frame_1 and sliced_frame_2 are equivalent.

Step Size

You can also specify a Step Size

frame = Frame2D.from_image("path/to/file.jpg")
sliced_frame = frame[::2, ::2, frame.CHN.RED]

This will then half the size of each dimension.

Slicing

If you are using a slice object, you can supply it directly

frame = Frame2D.from_image("path/to/file.jpg")
s1 = slice(10, 20, None)
s2 = slice(15, 25, None)
sliced_frame = frame[s1, s2, frame.CHN.RED]