opencv mat赋值_(八)OpenCV中的numpy

本文介绍了在OpenCV中使用Numpy进行图像处理的基础知识,包括理解图像的基本属性如shape和dtype,利用Numpy构建自定义图片,以及如何保存图像文件。示例代码展示了如何创建和展示一张回形图。
摘要由CSDN通过智能技术生成

44db2e5a2298d48deb63e6030c66f7db.png

时间为友,记录点滴。

既然是C++和python双语教程,怎么不提到python在OpenCV中最基本的东西?我们也写过两个例子,什么是最基本的?

跟C++一样,当然是imread的返回值的类型啦!关于numpy的基础知识,不在本专栏里面讨论,因为网上的干货确实一搜一大把。比如我看到介绍最全的下面这个网站:

https://blog.csdn.net/a373595475/article/details/79580734​blog.csdn.net

我们这里介绍一个跟图像相关的参数,他们会在以后的编程中频繁用到,并且对于图像来说有实际的物理含义。

基本属性:

下面的参数都以一张50x50尺寸的位深为8的单通道灰阶图片为例,说一下每个属性在图像(而不对应到数组中)领域的含义(其中最重要的两个特性是shape和dtype,大多数的问题都出在这两个性质上)。

459df554f33be7ed7f6ddca2f360f187.png
50x50尺寸的位深为8的单通道灰阶图片信息
size:这个图像数据的总大小。(50x50x1, 行x列x一个像素的大小) ndim:维度,这个维度跟mat中的dim属性不一样,它是指数组的长度。对于一张图片来说,ndim只能是2或者3,单通道的是2维数组。 dtype:元素类型(dtype的类型有好多中,就想着跟C/C++的类型保持一致就可以) itemsize:一个像素的大小,单位为bytes(sizeof(dtype) * depth) shape:它包含三个元素(rows, cols, depth, 即行、列、一个像素由几个通道组成)

如果初次在图像领域接触numpy,可能会对ndim和shap中的depth有困扰,其实,解释得越多越糊涂,看代码说话:

def numpyTest():
    print("n*****************numpyTest*****************")
    data1 = [1, 2, 3]
    data2 = [[1, 2, 3], [4, 5, 6]]
    data3 = [[[1, 2, 3], [4, 5, 6]],
             [[7, 8 ,9], [10, 11, 12]]]

    arr1 = np.array(data1)
    arr2 = np.array(data2)
    arr3 = np.array(data3)

    print(arr1.ndim, arr2.ndim, arr3.ndim)
    print(arr1.shape, arr2.shape, arr3.shape)

    e1 = arr2[[0, 1], [1, 2]]
    e2 = arr3[np.array([[0, 0], [1, 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值