精华内容
下载资源
问答
  • import matplotlib.pyplot as...from matplotlib.image import imread img = imread('F:\\ml\\DL\\source-code\\dataset\\lena.png') #imread读取图片 plt.imshow(img)#显示图片 plt.show() 转载于:...
    import matplotlib.pyplot as plt
    from matplotlib.image import imread
    
    img = imread('F:\\ml\\DL\\source-code\\dataset\\lena.png') #imread读取图片
    
    plt.imshow(img)#显示图片
    
    plt.show()

     

    转载于:https://www.cnblogs.com/hyan0913/p/11527042.html

    展开全文
  • 小结matplot1.主要是用于显示灰度图的显示总结一下: 在pycharm中运行python 控制台 运行之后可以像matlab一样查看变量 cv2 1.读取显示彩色图片 import cv2 import numpy as np import matplotlib.pyplot as plt ...

    在pycharm中运行python 控制台

    运行之后可以像matlab一样查看变量
    在这里插入图片描述
    在这里插入图片描述

    cv2

    1.读取显示彩色图片

    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    ina = cv2.imread('lina.jpg')
    cv2.imshow('lina',lina)

    运行结果:在这里插入图片描述
    dtype类型是uint8
    numpy数据类型:https://www.runoob.com/numpy/numpy-dtype.html
    shape:20行220列3通道 view as array
    在这里插入图片描述
    在下面输入第几行,可以查看那一行的三个通道的所有列的像素值。
    PS:
    1.BGR形式
    在这里插入图片描述
    BGR转RGB

    lina_RGB = cv2.cvtColor(lina,cv2.COLOR_BGR2RGB)
    #或者这样转换也可以的
    lina[:,:,[2,1,0]]#通道的顺序交换一下

    颜色空间及cv2.cvtColor 转换函数https://www.aiuai.cn/aifarm365.html

    总之,对于彩色图像而言,cv2读入的是BGR,显示的也是BGR,这样的话颜色才正常

    lina_bgr=cv2.cvtColor(lina_RGB,cv2.COLOR_RGB2BGR)
    cv2.imshow('1',lina_bgr)

    2.读取灰度图片

    lina = cv2.imread('lina.jpg'0)
    cv2.imshow(lina_RGB)

    在这里插入图片描述
    二维矩阵 view as array
    在这里插入图片描述
    在这里插入图片描述

    3.小结

    a=cv2.imread(‘图片路径名称.jpg’) 图片以array形式读入是BGR颜色格式
    cv2.imshow(‘窗口名称’,要显示的像素矩阵)

    PIL

    1.彩色图片

    from PIL import Image #导入PIL库的Image类
    import matplotlib.pyplot as plt
    lina= Image.open('lina.jpg') #读取图像文件
    lina.show()#显示图片
    lina.save('lina4.png')保存这个图片文件对象
    print(lina.mode)
    RGB
    print(lina.size)
    (220, 220)
    print(lina.format)
    JPEG

    当用Image.open打开一个图片文件,只会读取文件头信息来确定格式、颜色模式、大小等,文件其他数据不会处理,这种方式保证了图片操作性能

    可以说Image.open是一个懒操作(只读文件头信息,直到图像操作才会读取整个图像数据),因此调用load()方法可以强行加载图像数据

    iu = Image.open('iu.jpg')
    iu = iu.load()
    print(iu[0,1])
    (133, 151, 135)

    如果不对iu执行load()方法那么就无法读取某一处的像素值或者是修改某一处的像素值。

    print(iu[0,0])
    (131, 149, 133)
    iu[0,0]=(1,1,1)
    print(iu[0,0])
    (1, 1, 1)

    此时还不能view as array
    要转换成array形式

    import numpy as np
    iu_array= np.array(Image.open('iu.jpg'))

    在这里插入图片描述

    iu_array.dtype
    Out[18]: dtype('uint8')
    iu.dtype
    Traceback (most recent call last):
    tributeError: 'PixelAccess' object has no attribute 'dtype'

    dtype=uint8
    shape (1034,909,3)

    iu只是一个图像文件,用iu.show()可以显示出来
    而iu.array是一个’numpy.ndarray’的对象了,就不能用iu_array.imshow来显示图片啦,可以用plt.imshow(iu_array)或者是cv2.imshow(‘2’,iu_array)(记得cv2是BGR显示哦)

    2.灰度图片

    lina = np.array(Image.open('lina.jpg').convert('L'))#Lina变成一个array
    Image.open('lina.jpg').show()#直接显示出来

    3.小结

    a=Image.open(‘图像路径名称.jpg’) 打开得到的这个对象a只是一个图像文件
    a.show() 把这个图像文件显示出来
    a.load() 可以对这个对象操作了
    a.save(‘图片保存的路径.jpg’)
    np.array(a) 把这个对象转换成array数组

    matplot

    1.主要是用于显示

    可以显示image.open()读入的图片格式

     iu =Image.open('iu.jpg')
     plt.imshow(lina)

    可以显示一个array

    import numpy as np
    import matplotlib.pyplot as plt
    A=np.zeros((128,128),dtype=int)
    A[40:67,60:100]=1
    plt.imshow(A);plt.title('A')

    灰度图的显示

     iu =Image.open('iu.jpg')
     plt.imshow(lina,cmap='gray')
    

    总结一下:

    1.cv2.imread()读入,cv2.imshow()读出都是BGR格式
    image.open()读入是RGB
    2…cv2.imread()读入以array形式保存,cv2.imshow()也是把array显示
    image.open()只是图片读取的状态,读入的不是array,要np.array()转换,要对对象执行.load()之后才能操作
    3.plt主要用于显示
    plt.imshow(像素矩阵名

    展开全文
  • 不做整理的话,下次读取图片还得再去查询资料,不若自己整理,下次直接开始写:读取图片:1.PIL....2.cv2.imread(path)返回的是一个numpy.ndarray格式,通道顺序为BGR,通道值默认为0-255.3.matplot.image.imread...

    不做整理的话,下次读取图片还得再去查询资料,不若自己整理,下次直接开始写:

    读取图片:

    1.PIL.Image.open(path):不直接返回numpy对象,可以用numpy提供的函数进行转换,通道顺序为RGB,通道值默认为0~255。

    2.cv2.imread(path)返回的是一个numpy.ndarray格式,通道顺序为BGR,通道值默认为0-255.

    3.matplot.image.imread(path)直接返回numpy.ndarray格式,通道顺序是RGB,通道值默认范围0-255。

    4.skimage.io.imread(path): 直接返回numpy.ndarray 对象,通道顺序为RGB,通道值默认范围0-255。

    -------至此,读取图片函数也就讲完了,读取多张图片无非套个循环而已辣!

    注意:

    range(n):0~n-1

    enumerate(list):其中list是一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

    e4ef7a8e40822213621569cd9c64e04a.png

    显示图片:得到图片之后就应该知道如何展示图片。

    1. matplotlib.pyplot.imshow()

    import matplotlib.pyplot as plt
    plt.imshow(pic)  # pic是图片的numpy.ndarray格式,通道顺序为RGB,pic[:,:,0]显示的是第一个通道,pic[:,:,1]为第二个通道,pic[:,:,2]为第三个
    plt.show()

    2.同时显示多张图片

    subplot(arg1, arg2, arg3):arg1:垂直方向几张图;arg2:水平方向几张图;arg3:当前指向的是第几张图。

    bb6a64d81b2e0930dafb62bfadb78e3b.png

    裁剪图片:在进行语义分割时,会遇到图片要进行放缩的情况,但是label图片进行放缩后其label就不准确了,故传统的做法就是对原图和label图片都进行裁剪。

    1.tensorflow中的random_crop(value, size, seed=None, name=None ):image指的是待裁剪的图片,size=(height,weight)是指定裁剪的尺寸。与 value 具有相同的秩并且与 size 具有相同形状的裁剪张量。

    2.mxnet.image.random_crop(image,(height,weight,channel)),用法如上所示辣!

    (2019-08-15)(以后再更辣)

    展开全文
  • opecv-python学习笔记

    2017-05-09 17:38:16
    matplot显示图片及注意事项 一、opencv读取图像并显示 @功能描述:读入、显示图像;按下ESC键,退出;按下S键,保存。import numpy as np import cv2img=cv2.imread('image.png',cv2.IMREAD_COLOR) cv2.namedWindow...

    目录

    • opencv读取图像并显示
    • matplot显示图片及注意事项

    一、opencv读取图像并显示

    @功能描述:读入、显示图像;按下ESC键,退出;按下S键,保存。
    
    import numpy as np
    import cv2
    
    img=cv2.imread('image.png',cv2.IMREAD_COLOR)
    cv2.namedWindow('image',cv2.WINDOW_NORMAL)   #可以创建窗口并且调节窗口的大小
    cv2.imshow('image',img)
    k=cv2.waitKey(0)
    if k==27:
        cv2.destroyAllWindows()  #这里关闭所有的窗口,当然也可以用cv2.destroyWindow()关闭特定的窗口
    elif k==ord('s'):
        cv2.imwrite('retina.png',img)
        cv2.destroyAllWindows()show()

    二、matplot显示图片及注意事项

    @功能描述:使用Matplotlib显示灰度图像
    
    import numpy as np
    import cv2
    from matplotlib import pyplot as plt
    
    img=cv2.imread('image.png',0)
    #0表示读取的是灰度图像
    plt.imshow(img,cmap='gray',interpolation='bicubic')
    plt.xticks([]),plt.yticks([]) # 隐藏坐标系
    plt.show()
    @功能描述:使用Matplotlib显示彩色图像
    @注意事项:彩色图像在opencv为BGR模型,在Matplotlib为RGB模型,彩色图像直接在matplotlib显示会出问题,要模型转换才行。
    
    import numpy as np
    import cv2
    from matplotlib import pyplot as plt
    
    img1=cv2.imread('image.png')
    b,g,r=cv2.split(img1)    #分离、合并通道
    img2=cv2.merge([r,g,b])
    plt.subplot(121);plt.imshow(img1)
    plt.subplot(122);plt.imshow(img2)
    plt.show()
    展开全文
  • 利用matplot库可以方便简洁地在jupyter内对图片进行绘制与输出,首先通过tf.gfile打开图片文件,并利用函数tf.image.decode_jpeg将jpeg图片解码为三位矩阵,之后便可以通过matplot绘制与显示图片信息了 import ...
  • 一.python 读取图像的方式 1.用PIL 包读取,读取以后的数据格式为 image,不是Numpy ,所以需要转换为Numpy from PIL import Image import numpy as np path1 =‘’ data1 = Image.open(path1) ...import matplot
  • 【莫烦Python】Matplot学习笔记(一) 【莫烦Python】Matplotlib学习笔记(二) 一、Bar柱状图/条形图 二、Contours等高线图 三、Image图像 四、3D图像 五、subplot多合一显示 六、subplot分格显示 七、图...
  • 图像与矩阵坐标位置

    2019-12-03 15:02:47
    opencv和matplot.pyplot显示图像时坐标轴如下图: 而将图像读为numpy矩阵时:image=[[0,0,1..1,0,1],[0,0,1,...1,1,0]...[1,1,0..0,0,1]] 此时求coord=np.argwhere(image>0) x和y的坐标是相反的。 a...
  • pytorch数据加载、模型保存及加载

    万次阅读 多人点赞 2018-12-29 14:09:56
    主要涉及的Pytorch官方示例下图红框部分的一些翻译及备注。 1、数据加载及处理   该部分主要是用于进行数据集加载及数据预处理说明...1.1、jupyter显示matplot图像 import matplotlib.pyplot as plt %matplotlib ...
  • MATLAB生成一张渐变图片来区分几种图片读取方式分别用PIL,Matplot,Opencv读取图像,但是都用plt显示,可以看出opencv读取图像的BGR,所以这点我们需要注意。### 方法一:利用PIL中的Image函数Note: 这个函数读取...
  • 分别用PIL,Matplot,Opencv读取图像,但是都用plt显示,可以看出opencv读取图像的BGR,其它的两种读取图像的RGB,所以这点我们需要注意。 方法一:利用PIL中的Image函数 Note: 这个函数读取出来不是array格式 这时...
  • tensorflow图片数据增强

    2019-10-31 22:48:30
    在对图像进行深度学习时,有时可能图片的...利用matplot库可以方便简洁地在jupyter内对图片进行绘制与输出,首先通过tf.gfile打开图片文件,并利用函数tf.image.decode_jpeg将jpeg图片解码为三位矩阵,之后便可以...
  • Tensor FLow图像处理

    2019-09-08 10:31:21
    在对图像进行深度学习时,有时可能图片的数量...利用matplot库可以方便简洁地在jupyter内对图片进行绘制与输出,首先通过tf.gfile打开图片文件,并利用函数tf.image.decode_jpeg将jpeg图片解码为三位矩阵,之后便可...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

matplot显示image