精华内容
下载资源
问答
  • PIL,plt显示tensor类型的图像

    千次阅读 2018-12-26 20:26:06
    PIL 与plt中对应操作不同,但原理是一样的,我试过用下方代码Image的方法在plt上show失败了,原因暂且不知。 # 方法1:Image.show() # transforms.ToPILImage()中有一句 # npimg = np.transpose(pic.numpy(), (1,...

    该方法针对显示Dataloader读取的图像。

    PIL 与plt中对应操作不同,但原理是一样的,我试过用下方代码Image的方法在plt上show失败了,原因暂且不知。

     # 方法1:Image.show()
     # transforms.ToPILImage()中有一句
     # npimg = np.transpose(pic.numpy(), (1, 2, 0))
     # 因此pic只能是3-D Tensor,所以要用image[0]消去batch那一维
     img = transforms.ToPILImage(image[0])
     img.show()
    
     # 方法2:plt.imshow(ndarray)
     img = image[0] # plt.imshow()只能接受3-D Tensor,所以也要用image[0]消去batch那一维
     img = img.numpy() # FloatTensor转为ndarray
     img = np.transpose(img, (1,2,0)) # 把channel那一维放到最后
     # 显示图片
     plt.imshow(img)
     plt.show()
     cnt += 1
    

    参考文献

    [1]. PyTorch读取Cifar数据集并显示图片的实例讲解

    展开全文
  • plt作图

    2020-05-08 21:24:28
    1. 简介 matplotlib是python中著名的2D绘图库... plt.subplot(nrows, ncols, index, **kwargs)图纸设置,在全局绘图区域中创建子图位置,图纸中有nrows行ncols列,index从左往右,从上到下,这是第几个 。plt.subplot...

     

    1. 简介

    matplotlib是python中著名的2D绘图库

    2. API

    import matplotlib.pyplot as plt  命令行式函数的集合

    #解决中文显示问题
    plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
    plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

    • plt.figure(figsize=None,g=facecolor=None)创建一个全局绘图区域
    • plt.subplot(nrows, ncols, index, **kwargs)图纸设置, 在全局绘图区域中创建子图位置,图纸中有nrows行ncols列,index从左往右,从上到下,这是第几个 。plt.subplot(211)
    • plt.plot(X,Y,label,color,width),参数为X和Y的数据集/列表,可以设置颜色和线类型"b-"蓝色实线,"r"红色;若只有一组数据,默认设置为y轴数据并自动产生从0开始的x轴数据。linewidth = 2.0线宽。设置label有助于plt.legend()作图注。
      plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
    • plt.axes(rect,axisbg=’w’)创建一个坐标系风格的子绘图区域。默认创建一个subplot(111) 坐标系,参数rect=[left,bottom,width,height]中4个变量的范围都是[0,1],表示坐标系与全局绘图区域的关系;axisbg表示背景色,默认为白色’white’
    • plt.subplots_adjust()调整子绘图区域的布局。
    • clf()来清空当前图像,用cla()来清空当前坐标。

     

    • 作图类:

    散点图plt.scatter();

    折线图plt.plot();

    plt.boxplot(data,notch,position)创建一个箱型图;

    plt.bar(left,height,width,bottom)条形图

    plt.bath(tottom,width,height,left)横向条形图

    plt.pie(data,label,explode)绘制饼图.

    plt.pie(sizes,labels=labels,explode = (0,0.1,0,0),autopct='%1.1f')

    plt.psd(x,NFFT=256,pad_to,Fs)绘制功率谱密度图

    plt.cohere(x,y,NFFT=256,Fs)绘制X-Y相关性函数

    plt.scatter(x,y)散点图,x,y是长度相同的序列

    plt.hist(x,bins,normed)直方图

     

    • plt库的读取和显示函数

    plt.legend()在绘图区域设置绘图标签(图注),注意:图注需要每个图的标签

    plt.matshow()在窗口显示数组矩阵

    plt.imshow()在axes上显示图像,如果图像为灰度图skeleton_gray.shape # (720, 1280),需要cmap="gray"

    plt.imsave()保存图像.

    plt.savefig()

    plt.imread()读取图像为数组

    plt.xlabel()

    plt.ylabel()

    plt.title()

    plt.grid(True)

    plt.axis([xmin,xmax,ymin,ymax])设置的是x轴和y轴的范围

    plt.text()可以在任意位置添加文本

    plt.axis("off")关闭轴坐标

    plt.xticks()  plt.yticks()

    plt.xlib(-50,1050) x轴起始和中止的标签范围

    plt.ylib(-3.,3.) y轴起始和中止的标签范围

    • plt库的基础图表函数

    3.应用

    • 利用text显示数字标签

    x = ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
    y = [235,150,222,150,333,180]

    # 数字标签
    for a,b in zip(x,y):
        plt.text(a, b+2, 
                 b, 
                 ha='center',   horizontalalignment(ha):设置垂直对齐方式,可选参数:left,right,center
                 va= 'bottom',  verticalalignment(va):设置水平对齐方式 ,可选参数 : ‘center’ , ‘top’ , ‘bottom’ ,‘baseline’
                 fontsize=12,
                 color=(0.1, 0.2, 0.5),设置字体颜色,单个字符作为参数时可以选择{‘b’, ‘g’, ‘r’, ‘c’, ‘m’, ‘y’, ‘k’, ‘w’},也可以’black’,'red’等,tuple作参数时是[0,1]之间的浮点数,RGB或RGBA,例如(0.1, 0.2, 0.5)、(0.1, 0.2, 0.5, 0.3)等
                 backgroundcolor='red',  字体背景颜色
                 rotation=30,  旋转角度,参数可以是vertical,horizontal ,数字
                 alpha=0.5  透明度[0,1]
                )

    plt.bar(x,y)
    plt.show()

    • """Matplotlib图像展示和opencv的区别"""
      # 在openCV的python绑定中,图像以BGR顺序表示为NumPy数组。cv.imread()
      # cv2.imshow(window_name,image)  其中window_name表示展示窗口,"image",'ImageWindow'
      # cv2.waitKey()
      # 通过Matplotlib展示图片根据RGB顺序排列,三种方式转换图片bgr顺序
      # plt.imshow(imutils.opencv2matplotlib(img))
      # plt.imshow(img[:,:,::-1])
      # plt.imshow(cv.cvtColor(img,cv.COLOR_BGR2RGB))

     

    展开全文
  • 转换后用plt画图时,发现显示出来的图像,和保存下来的图像,颜色显示不太一致。最开始还以为是电脑的问题,但是转用OpenCV画图时,直接报错了。查阅资料才发现,这个是跟图像矩阵中的数据类型有关。 程序 1. OpenCV...

    引言

    对图像做了一个RGB-> LAB ,再转RGB的一个转换。转换后用plt画图时,发现显示出来的图像,和保存下来的图像,颜色显示不太一致。最开始还以为是电脑的问题,但是转用OpenCV画图时,直接报错了。查阅资料才发现,这个是跟图像矩阵中的数据类型有关。

    程序

    1. OpenCV

    程序:
    图像显示程序为:

    cv2.imshow("image",img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    结果:
    python报错为:

    >>> (-215:Assertion failed) dst.data == (uchar*)dst_ptr in function 'cvShowImage'
    

    原因分析:
    OpenCV画图中,只支持uint8的数据类型。 因此,若图像矩阵数据类型不为uint8,需要再画图前转换。

    改进:
    数据类型转换代码为(两种类型):

     data = np.array(data,dtype='uint8')  # 第一种
     data = np.uint8(data)  # 第二种
    

    2. plt

    程序:
    plt画图程序为:

     img_plt = cv2.cvtColor(img_RGB,cv2.COLOR_BGR2RGB)     # cv2转plt画图
     plt.imshow(img_plt, 'gray')
     plt.title('img_solar')
     plt.show()
    

    结果:
    用plt 画图时,程序并不会报错,只是显示出的图像,和原本的图像像素值不一致。

    修改:
    同样,在画图前,调用数据类型转换代码。
    数据类型转换代码为(两种类型):

     data = np.array(data,dtype='uint8')  # 第一种
     data = np.uint8(data)  # 第二种
    

    参考资料

    1. https://blog.csdn.net/jacke121/article/details/87723912
    2. https://blog.csdn.net/fsgongzi/article/details/88788557
    展开全文
  • resize之前图像显示正常,resize后由于用了线性插值等方法,图像中的值变成了float类型,这时应该将float转换为int才能显示出来,不然会是一个很白的图像 face = mtcnn(frame) #用mtcnn检测出人脸 print("face ...

    resize之前图像显示正常,resize后由于用了线性插值等方法,图像中的值变成了float类型,这时应该将float转换为int才能显示出来,不然会是一个很白的图像

    face = mtcnn(frame) #用mtcnn检测出人脸
    print("face shape:",face.shape) #[3,160,160]
    
    
    f = face.permute(1,2,0).numpy() #[160, 160, 3]
    # plt.imshow(f) # f=face.permute(1,2,0).int().numpy() plt.imshow的input格式应该为(w,h,c)
    re = cv2.resize(f, (224, 224),interpolation=cv2.INTER_CUBIC) # input:(w,h,c)
    print("re size:",re.shape) #[224,224,3]
    re = [r.astype(int) for r in re] #将其转换为int
    plt.figure(figsize=(12,8))
    plt.imshow(np.array(re)) #转换为numpy输出

     

    展开全文
  • 利用cv.imread读取图像,再利用plt.imshow发现图像显示出来色彩不对 import cv2 img = cv2.imread(img_path) 原因 cv2与matplotlib的显示模式不一致,opencv读取的彩色图像是BGR格式,Matplotlib显示彩色图像是RGB...
  • 学习傅里叶变换之高通滤波和低通滤波推荐博客:... plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)#输出图片拉满 # plt.subplot(121), plt.imsho...
  • 1.plt.pie绘制扇形 # 1. plt.pie绘制扇形 import matplotlib.pyplot as plt %matplotlib inline labels = 'frogs','hogs','dogs','logs' sizes = 15,20,45,10 colors = 'yellowgreen','gold','...
  • import matplotlib.pyplot as plt img = cv2.imread("lenags15.bmp", 0) w = 'sym4' # 定义小波基的类型 l = 3 # 变换层次为3 coeffs = pywt.wavedec2(data=img, wavelet=w, level=l) threshold = 0.04 # 设置滤波...
  • 【Python】plt.bar绘制柱状参数详解

    千次阅读 2020-12-21 19:48:48
    height 表示柱状的高度,也就是y坐标值,数据类型为int或float类型, width 表示柱状的宽度,取值在0~1之间,默认为0.8 bottom 柱状的起始位置,也就是y轴的起始坐标, align 柱状的中心位置,"center","le...
  • plt 在屏幕的固定位置显示图像

    千次阅读 2019-06-06 16:41:54
    在调用matplotlib.pyplot库画图时,如何设置其在固定位置显示。...其实问题在于你要搞清楚你的plt后端编译器的类型。有TkAgg,WXAgg,Qt5Agg等类型。怎么查看自己的后端编译器,可以这样 import matplotlib impo...
  • 下面是plt.imshow的结果, 但发现全0或1时都是黑色,如中a,b 但一半0一半1时,内够很好的分开如c,d import numpy as np import matplotlib.pyplot as plt # a=plt.imread('right.jpg') a = np.zeros((50,100),...
  • 柱状、直方、折线、散点、箱线图
  • python plt绘制柱状图形+柱状增加数字标注

    万次阅读 多人点赞 2019-07-02 15:32:26
    python绘制柱状图形+柱状增加数字标注 data = pd.Series([4, 5, 6], index=[‘A’,‘B’,‘C’]) fig = plt.figure(figsize=(7, 5), dpi=90) # 声明画布1 ax = fig.add_subplot(1,1,1) # 声明绘图区 x, y = ...
  • 对于灰度而言,我们最常用的显示代码是: import matplotlib.pyplot as plt plt.figure() plt.imshow(x,cmap="gray") plt.show() 而对于彩色RGB图像,我们通常就直接省略掉cmap参数配置,但是会发现显示出的...
  • plt、nn 使用

    2021-03-04 22:37:47
    import pandas as pd import numpy as np import matplotlib.pyplot as plt data = pd.read_csv('csv_...plt.scatter(data.num,data.debt) # 散点 plt.xlabel('num') plt.ylabel('debt') from torch import nn i
  • matplotlib.pyplot——plt

    2020-03-14 13:13:33
    这里写自定义目录标题plt.scatter():散点显示函数的原型参数解释函数样例plt.legend():图例显示plt.xlabel("x"):横坐标plt.ylabel("y"):纵坐标 import matplotlib.pyplot as plt plt.scatter():散点显示 ...
  • 数据可视化plt画饼

    千次阅读 2020-10-18 23:42:10
    plt.pie()参数: x为一个列表,值为百分比 labels:列表形式,值为标签 autopct:设置百分比的格式,eg:autopct=’%.1f%%’, explode列表形式,值为每一部分与圆心的距离,用于突出显示数据 colors列表形式 ...
  • 一、fig, ax = plt.subplots()的作用? 二、参数的含义? 三、怎么在一个上排列多个子? 四、怎么把多个子图一起合并到一个上? 《Python for Data Analysis》 2nd Edition 一、fig, ax = plt.subplots()...
  • PLT文件格式

    千次阅读 2012-04-23 12:21:29
    PLT文件格式 PLT文件源自于 HP 绘图仪,PLT文件格式是基于矢量的,由Hewlett Packard开发。在 AutoCAD/R14 版及 CorlDraw 软件中可以见到(需要导出),其实基于此类设备的还有EPS的一种矢量格式,即EPS文件...
  • import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np mpl.rcParams["font.sans-serif"] = ["SimHei"] mpl.rcParams["axes.unicode_minus"] = False x = np.arange(4) bar_width = 0.1...
  • python opencv读取图像并生成plt文件

    千次阅读 2020-09-16 09:25:56
    现在假设电脑或手机上没有工控软件,只有一些描述加工路径的图片,比如这样的: https://img-blog.csdnimg.cn/20200915210819756.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0...
  • 箱型包含一组数据:中位数、上四分位数、下四分位数、内限、外限、异常值。 # plt.plot.box() , plt.boxplot()    plt.plot.box()   fig,axes = plt.subplots(2,1,figsize = (10,6)) df = pd.DataFrame...
  • 图例的注释plt.legend() plt.legend(loc=’’, title=,fontsize=12, frameon=True, fancybox=True, framealpha=0.2, borderpad=0.3, ncol=1, markerfirst=True, markerscale=1, bbox_to_anchor=,numpoints=1, ...
  • python画图plt函数学习

    2021-04-12 20:41:39
    python中的绘图工具 :matplotli,专门用于...多绘图;数组绘图 二. 列表绘图 1. 基础绘图:plt.plot;plt.show import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [1, 4, 9, 16] plt.plot(x, y) plt.show()
  • matplotlib画柱状 - plt.bar() 一、plt.bar()参数详解 import matplotlib as mpl import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocator from matplotlib import ticker %matplotlib ...
  • (一)竖条条形  参数说明 参数  说明 类型 x x坐标  int,float height 条形的高度 int,float width 线条的宽度 0~1,默认是0.8 botton 条形的起始位置 也就是y轴的起始...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,393
精华内容 19,357
关键字:

plt图类型