1 | initial version |

there is no Mat (or Mat_ even) in cv2, instead it's numpy arrays all the way down.

```
>>> import cv2
>>> import numpy as np
>>> m = cv2.imread("m2.bmp")
>>> np.shape(m)
(480, 640, 3)
```

you'd access them like `img[y][x] = 3`

, or `green = img[y][x][1]`

(for color),
it's the same row,col convention as for cv::Mat

```
>>> m[2][2][1]
68
```

there's range operators too (if you need a submat / roi) : `roi = img[y:Y, ,x:X]`

```
>>> m[2:4, 3:6]
array([[[54, 63, 49],
[52, 59, 47],
[51, 58, 46]],
[[41, 50, 36],
[45, 52, 40],
[47, 54, 42]]], dtype=uint8)
```

and you can even slice them, i.e to get only the last channel:

```
>>> m[:,:,2]
array([[ 0, 0, 0, ..., 0, 0, 0],
[36, 39, 38, ..., 0, 0, 0],
[59, 59, 54, ..., 0, 0, 0],
...,
[ 0, 0, 0, ..., 0, 0, 0],
[ 3, 3, 3, ..., 0, 0, 0],
[ 3, 3, 3, ..., 0, 0, 0]], dtype=uint8)
```

2 | No.2 Revision |

there is no Mat (or Mat_ even) in cv2, instead it's numpy arrays all the way down.

```
>>> import cv2
>>> import numpy as np
>>> m = cv2.imread("m2.bmp")
>>> np.shape(m)
(480, 640, 3)
```

you'd access them like `img[y][x] = 3`

, or `green = img[y][x][1]`

(for color),
it's the same row,col convention as for cv::Mat

```
>>> m[2][2][1]
68
```

there's range operators too (if you need a submat / roi) : `roi = img[y:Y, `

~~,x:X]~~x:X]

```
>>> m[2:4, 3:6]
array([[[54, 63, 49],
[52, 59, 47],
[51, 58, 46]],
[[41, 50, 36],
[45, 52, 40],
[47, 54, 42]]], dtype=uint8)
```

and you can even slice them, i.e to get only the last channel:

```
>>> m[:,:,2]
array([[ 0, 0, 0, ..., 0, 0, 0],
[36, 39, 38, ..., 0, 0, 0],
[59, 59, 54, ..., 0, 0, 0],
...,
[ 0, 0, 0, ..., 0, 0, 0],
[ 3, 3, 3, ..., 0, 0, 0],
[ 3, 3, 3, ..., 0, 0, 0]], dtype=uint8)
```

Copyright OpenCV foundation, 2012-2018. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.