图像的知识

通过指定参数transform=transforms.ToTensor()使得所有数据转换为Tensor,如果不进行转换那么返回的是PIL图片。transforms.ToTensor()将尺寸为(HxWxC)且数据位于[0,255]的PIL图片或者是数据类型为np.uint8的Numpy数组转换为尺寸为(CxHxW)且数据类型为torch.float32且位于[0.0,1.0]的Tensor。

注意:由于像素值为0到255的整数,所以刚好是uint8所能表示的范围,包括transforms.ToTensor()在内的一些关于图片的函数就默认输入是uint型,若不是,可能不会报错,但是可能得不到想要的结果。所以如果用像素值(0-255)表示图片,那么最好将其类型设置诶uint8,避免不必要的bug。

掩膜mask

  1. mask是用于部分或完全掩盖对象或者是掩盖部分的图像操作。将mask应用在图形的效果就类似将图形通过遮罩涂在背景上,从而完全或者是部分遮盖了图形的某部分,但是遮罩内的图形是不会变化的。在图像处理中mask常常用来提取ROI区域。
  2. 下面的例子来说明mask操作,下面图的最后一个图,是使用两个圆形做mask,取两个圆形的交集,所以得到除了交集以外的部分都涂上黑色。所以可以这么说,和原图(原图在例子中是下图中的第一列图片)进行掩膜操作,就是将mask放在原图上然后在上面刷黑漆,mask区域图像不变,其他区域涂成黑色。
  3. 掩膜的作用:
    (1)提取感兴趣区域,用预先制作的感兴趣区掩膜与待处理图像相乘,得到感兴趣图像,感兴趣区内图像值不变,而区外图像值都为0.
    (2)屏蔽作用,用掩膜对图像上某些区域屏蔽,使其不参加处理或者不参加参数的计算,或仅对屏蔽区做处理。
    (3)结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与淹膜相似的结构特征。
    (4)特殊形状图像制作

灰度图像

  1. 灰度图像的channel==0

yolo

  1. 在yolo中,作者读取图像后并不是直接作为训练图像,除了normalization外,还对图像裁剪,双线性插值并且随机旋转,对于原图像可能没什么影响,但是对于0-1的mask图像还是影响挺大,会造成一些1内部的点插值为0,或者一些边缘值不是0-1而是中间值。

图像的RGB格式

  1. OpenCV提供了cv::COLOR_RGB2BGR()和 cv::COLOR_BGR2RGB ()等多个函数,用于色彩空间转换,而OpenCV默认使用的恰恰是BGR色彩空间.
  2. caffe,作为最早最流行的一批库的代表,用了opencv,而opencv默认通道是bgr的。自己训练可以用rgb,新库也基本没了bgr还是rgb这个问题,就是切换下顺序。但如果你要用一些老的训练好的模型,就得兼容老模型的bgr。<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值