Opencv Python API 基本数据结构

Opencv Python API 基本数据结构

本例使用python3.7

opencv环境配置方法:

pip install numpy matplotlib

pip install opencv-python 下载anacoda 只需在anacoda prompt中 执行此句

1、构造 ndarray 对象

构造二维 ndarray

构造2 行 4列 全是0的uchar类型的二维数组

import numpy as np
z = np.zeros((2,4),np.uint8)

type(z)
z
array([[0, 0, 0, 0],
       [0, 0, 0, 0]], dtype=uint8)

构造2行4列全是1的整形矩阵

o = np.ones((2,4),np.int32)
o
array([[1, 1, 1, 1],
       [1, 1, 1, 1]])
#初始化一个浮点举证
m = np.array([[4,12,3,1],[10,12,14,29]],np.float32)
m
array([[ 4., 12.,  3.,  1.],
       [10., 12., 14., 29.]], dtype=float32)

构造一个三维的 ndarray

三维数组理解成每个元素都是一个二维数组,一个2x2x4的数组理解为2个2x4的二维数组


m = np.array(
            [
                [[1,2,3,4],[5,6,7,8]],
                [[10,11,12,14],[15,16,17,18]]
                ],np.float32)
print (m)
m
[[[ 1.  2.  3.  4.]
  [ 5.  6.  7.  8.]]

 [[10. 11. 12. 14.]
  [15. 16. 17. 18.]]]





array([[[ 1.,  2.,  3.,  4.],
        [ 5.,  6.,  7.,  8.]],

       [[10., 11., 12., 14.],
        [15., 16., 17., 18.]]], dtype=float32)

获取 ndarray 的成员变量

获取尺寸

m = np.array([[4,12,3,1],[10,12,14,29]],np.float32)
#获取m尺寸
m.shape
(2, 4)

获取类型

m.dtype
dtype('float32')

2、访问 ndarray 中的值

访问二维ndarray

m = np.array([[14,12,3,1],[10,12,114,29],[67,23,534,2]], np.float32)

获取 r行c列的值

m[1,3]#索引都是从0开始
29.0

获取r行所有的值

m[2,:]#获取第2行所有的值
array([ 67.,  23., 534.,   2.], dtype=float32)

获取第c列所有的值

m[:,3]#获取第3列所有的值
array([ 1., 29.,  2.], dtype=float32)

获取连续矩形区域的值

m[0:2,1:3]#获取0行和第1行不包括第二行,和2,3列围成的矩形区域 注意:区间左闭右开
array([[ 12.,   3.],
       [ 12., 114.]], dtype=float32)

访问三维 ndarray中的值

m = np.array([[[1,2,3,4],
              [5,6,7,8]],
             [[10,11,12,14],
              [15,16,17,18]],
            [[11,12,43,32],
             [1,5,10,23]]],np.float32)

获取二维数组的第c列

#获取所有二维数组的第0列
m[:,:,0]
array([[ 1.,  5.],
       [10., 15.],
       [11.,  1.]], dtype=float32)

获取三维数组中的第n个二维数组

#获取m中第0个二维数组
m[0,:,:]
array([[1., 2., 3., 4.],
       [5., 6., 7., 8.]], dtype=float32)

jupyter下载

https://gitee.com/pythonFCGa/Opencv

posted @ 2019-09-28 13:36  消灭猕猴桃  阅读(219)  评论(0编辑  收藏  举报