zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Webpack 入门学习
    如何把百度地图引入自己的网页中
    哗啦啦Python之路 Day 1 数据类型,运算符和表达式
    哗啦啦python之路 Day 2 程序控制结构
    找个轻量级的Log库还挺难
    W32.Downadup.autorun病毒的清除
    一个VxWorks源代码网站
    VisualSVNServer无法卸载也无法安装,报告不是有效的MOF文件(0x8004401e)错误
    如何用Visual Studio 2005编译Wireshark的插件
    TAU G2中的BitString和OctetString
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13860135.html
Copyright © 2011-2022 走看看