图像相关笔记

  1. 深度图float32转uint16类型
    python+opencv
    cv2.imread读完图的结果其实就是ndarry类型的,所以可以直接用numpy的一些函数来操作。
import numpy as np
import cv2
res_im = cv2.imread(imgpath,-1)
trans_im = res_im.astype(np.uint16)
cv2.imwrite(imgpath,trans_im)

np.astypy()使用示例:

#示例
a = np.array((257,),dtype=np.uint16)
print('=================before convert==================')
print(a.dtype)
print(a)
print('=================after convert==================')
c = a.astype(np.uint8)
print(c.dtype)
print(c)

结果

=================before convert==================
uint16
[257]
=================after convert==================
uint8
[1]

注意:

  1. astype使用过程中不会发生数值变化(也即不会进行线性拉伸),但是会出现精度丢失
  2. 当出现数值范围溢出的时,结果会不可控。因此,一定要避免这种情况的出现
  3. 该转换是非就地操作,原始数组不会发生改变。如果想实现就地操作,应该给原始数组赋值:a = a.astype(np.uint8)

numpy支持的数据类型:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值