zoukankan      html  css  js  c++  java
  • plt.imshow()显示图片色差问题

    转载:https://www.cnblogs.com/darkknightzh/p/6039667.html

    由于系统缺少某些库,导致cv2.imshow()无法使用,于是使用matplotlib.pyplot.imshow()代替,但是在使用时发现plt.imshow()显示的图片颜色有问题。

    原图:

    from matplotlib import pyplot as plt 
    import cv2 
    import numpy as np
    img = cv2.imread('XXX')
    plt.imshow(img)
    • 1
    • 2
    • 3
    • 4
    • 5


    明显看出颜色有问题。网上查找发现原来是cv2读取的问题:
    使用cv2.imread()接口读图像,读进来的是BGR格式以及【0~255】。所以只要将img转换为RGB格式显示即可:

    img_2 = img[:,:,[2,1,0]]
    plt.imshow(img_2)
    • 1
    • 2


    也正是由于这个原因,在使用pycaffe做识别时需要转换通道:
    image = caffe.io.load_image(image_file) #加载图片
    使用caffe.io.load_image()读取进来的是RGB格式和【0~1】(float),所以在进行识别之前要在transformer中设置transformer.set_raw_scale(‘data’,255)(缩放至0~255),以及transformer.set_channel_swap(‘data’,(2,1,0))(将RGB变换到BGR,因为训练时用cv2读取的图片是BGR的,测试需要和训练一致)

  • 相关阅读:
    网页字体设置你了解吗?
    CSS 定位 (Positioning)
    常用CSS缩写语法总结
    CSS 教程
    CSS Reset(CSS重置)
    边框模拟小三角形
    CSS sprites
    border:none和border:0的区别
    css display属性
    css的postion属性
  • 原文地址:https://www.cnblogs.com/MCSFX/p/13637684.html
Copyright © 2011-2022 走看看