cityscapes数据集json转label绘制填充图像后保存时不要用JPG格式,要用PNG格式

JPG(92年):使用的一种失真压缩标准方法,24 bit真彩色,内容比GIF丰富,不支持动画、不支持透明色。JPEG的压缩方式通常是破坏性资料压缩(lossy compression),意即在压缩过程中图像的品质会遭受到可见的破坏。一张图片多次上传下载后,图片逐渐会失真。
优点   
JPEG在色调及颜色平滑变化的相片或是写实绘画上可以达到它最佳的效果。在这种情况下,它通常比完全无失真方法作得更好,仍然可以产生非常好看的影像
缺点   
它并不适合于线条绘图(drawing)和其他文字或图示(iconic)的图形,因为它的压缩方法用在这些图形的型态上,会得到不适当的结果;

PNG(96年)格式是无损数据压缩,PNG格式有8位、24位、32位三种形式,其中8位PNG支持两种不同的透明形式(索引透明和alpha透明),24位PNG不支持透明,32位PNG在24位基础上增加了8位透明通道(32-24=8),因此可展现256级透明程度。
优点

  • 支持256色调色板技术以产生小体积文件
  • 最高支持48位真彩色图像以及16位灰度图像。
  • 支持Alpha通道的半透明特性。
  • 支持图像亮度的gamma校正信息。
  • 支持存储附加文本信息,以保留图像名称、作者、版权、创作时间、注释等信息。
  • 使用无损压缩。
  • 渐近显示和流式读写,适合在网络传输中快速显示预览效果后再展示全貌。
  • 使用CRC循环冗余编码防止文件出错。
  • 最新的PNG标准允许在一个文件内存储多幅图像。

缺点

  • 但也有一些软件不能使用适合的预测,而造成过分臃肿的PNG文件。

教训: 根据目的选择合适的图片格式,否则你很难想到BUG竟然出现在保存的图片格式上

代码: 根据cityscapes数据集中json转labelimg

# 生成label图像
folder_label = '/content/data/label/'
folder_img = '/content/data/img/'
folder_path = '/content/data/'
file_list = os.listdir(folder_path)
label_dict = {'flat':0, 'human':1, 'vehicle':2, 'construction':3, 'object':4, 'nature':5, 'sky':6}
color = {'flat':(255,0,0), 'human':(255,128,0), 'vehicle':(255,255,0), 'construction':(0,255,0), 'object':(0,255,255), 'nature':(0,0,255), 'sky':(128,0,255)}
if len(os.listdir('/content/data/img')) <= 20:
  for i in tqdm(file_list):
      num = 0
      name, type_ = os.path.splitext(i)
      if type_ == '.json':
          file_path = os.path.join(folder_path, i)
          file = open(file_path).read()
          file = json.loads(file)
          imgHeight = file['imgHeight']
          imgWidth = file['imgWidth']
          # img = np.zeros((imgHeight, imgWidth, 3), np.uint8)  # 二十四位彩图
          img = np.zeros((imgHeight, imgWidth), np.uint8)  # 八位图
          img.fill(7)
          # print(img.shape)
          objects = file['objects']
          for j in objects:
              label = j['label']
              contours = np.array(j['polygon'])
              cv2.drawContours(img, [contours], -1,label_dict[str(label)], -1)
          save_path = os.path.join(folder_label, str(name) + '.png')
          cv2.imwrite(save_path, img)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值