Python中plt.plot图像保存有白边及颜色不正常

plt图像保存有白边

参考:Python中plt.plot图像保存有白边,CV2.polyline,fillpoly的参数问题,图像保存颜色发生异常
改用CV2就可以完美的解决这个问题,试一下后,不错~,因为opencv展示时,是按照图片的大小来展示的
使用cv2

im = cv2.imread('demo.jpg')
cv2.imshow('image',im)
cv2.imwrite('aa.jpg',img)

在mmdetection中,注释部分是使用plt,保存之后会有白边,改为cv2后,如下图所示
在这里插入图片描述

 img = model.show_result(img, result, score_thr=score_thr, show=False)
    # plt.figure(figsize=fig_size)
    # plt.xticks([])
    # plt.yticks([])
    # plt.axis('off')
    # plt.imshow(mmcv.bgr2rgb(img))

    # OpenCV和Matplotlib中图片的像素排列方式略有不同。OpenCV中图片像素按照BGR方式排列,
    # 而Matpoltlib中图片按照RGB方式排序,这样使用OpenCV读入的图片经过Matplotlib展示时,就会出现反相问题。
    # 因此,使用plt需要用mmcv.bgr2rgb(img),cv2则不需要。
    assert show_dir,('please specify show dir to save result image (djj)')
    if(result_img_name==None):
        #plt.savefig(show_dir+'/result_image.png')
        cv2.imwrite(show_dir+'/result_image.png',img)
    else:
        cv2.imwrite(show_dir +'/'+result_img_name,img)
        #plt.savefig(show_dir+'/'+result_img_name)

颜色不正常

OpenCV和Matplotlib中图片的像素排列方式略有不同。OpenCV中图片像素按照BGR方式排列,而Matpoltlib中图片按照RGB方式排序,这样使用OpenCV读入的图片经过Matplotlib展示时,就会出现反相问题。所以需要注意plt.imshow(img)中img的格式,如果是RGB格式则没有问题,如果是BGR格式,则需要转为RGB格式,再用plt.imshow.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值