精华内容
下载资源
问答
  • cv2.imread

    万次阅读 2019-05-21 23:44:39
    cv2.imread():读入图片,真没看过这个源代码。特别谢谢这种网络喷子,自己犯错误很难发现。没有他们进步很难。他说的应该对。我在opencv-python文档没看到。 共两个参数,第一个参数为要读入的图片文件名, 第...

    cv2.imread():读入图片,真没看过这个源代码。特别谢谢这种网络喷子,自己犯错误很难发现。没有他们进步很难。他说的应该对。我在opencv-python文档没看到。

    共两个参数,第一个参数为要读入的图片文件名,

    第二个参数为如何读取图片,

    cv2.IMREAD_COLOR:以灰度模式读入图片,可以用-0表示;

    cv2.IMREAD_GRAYSCALE,1:,读入一副彩色图片,可以用1表示;

    cv2.IMREAD_UNCHANGED:读入一幅图片,并包括其alpha通道,可以用2表示

    只看到下面文档。最初我写的-1 0 1,后来改成0,1,2.我也蒙了。

    flags Flag that can take values of cv::ImreadModes

    也就是说很多模式读取。

    做了个简单测试

    for i in range(-10,10,1):
        tmp = cv2.imread(r"E:\py_code\img_treatment\img\1.jpg",i)
        tmp = cv2.resize(tmp,(200,200))
        cv2.imshow(f"i = {i}",tmp)
    
    
    cv2.waitKey()

    通过这个例子可以看到当 i =0和i=2时候为‘黑白图’,i=1和i=other时候为彩图。也就是说从表面看来说,只有参数为0,1,2才有意义。

    import cv2
    import numpy as np
    for i in range(-10,10,1):
        img = cv2.imread(r"/home/cheng/Documents/practice_py/data/red_rose.jpeg",i)
        print(f"当read中的参数为{i}时候,"
              f"图像的格式为 {img.shape},数据类型{img.dtype},")
        if len(img.shape)==3:
            print(f"channel 1 :极值为{np.max(img[:,:,0])}<-->{np.min(img[:,:,0])}",
                  f"channel 2 :极值为{np.max(img[:,:,1])}<-->{np.min(img[:,:,1])}",
                  f"channel 3 :极值为{np.max(img[:,:,2])}<-->{np.min(img[:,:,2])}")
        elif len(img.shape)==2:
            print(f"极值为{np.max(img)}<-->{np.min(img)}")

    结果

    当read中的参数为-10时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-9时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-8时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-7时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-6时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-5时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-4时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-3时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-2时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为-1时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为0时候,图像的格式为 (720, 1280),数据类型uint8,
    极值为255<-->0
    当read中的参数为1时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为2时候,图像的格式为 (720, 1280),数据类型uint8,
    极值为255<-->0
    当read中的参数为3时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为4时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为5时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为6时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为7时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为8时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    当read中的参数为9时候,图像的格式为 (720, 1280, 3),数据类型uint8,
    channel 1 :极值为253<-->0 channel 2 :极值为255<-->0 channel 3 :极值为255<-->0
    
    Process finished with exit code 0

    都是uint8,只有0和2为灰度图,值域都是0-255(里面有253是因为图片本身的问题)。

    最后就是别管了,知道0,1,2有特殊含义就行了,平时读个图片,没啥意义。

    展开全文
  • cv2.imread()和cv2.cvtColor() 的使用

    万次阅读 多人点赞 2019-04-01 16:52:35
    1、cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255 需要特别注意的是图片读出来的格式是BGR,不是我们最常见的RGB格式,颜色肯定有区别。 2、cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要...

    1、cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255

    需要特别注意的是图片读出来的格式是BGR,不是我们最常见的RGB格式,颜色肯定有区别。

    2、cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要转换的图片,p2是转换成何种格式。

    cv2.COLOR_BGR2RGB 将BGR格式转换成RGB格式

    cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片

    通过我做的实验和在网上看别人实验的结果,发现转换后并不是通常意义上的黑白图片。根据我问别人后的结果,他说,灰度图片并不是指常规意义上的黑白图片,只用看是不是无符号八位整型(unit8),单通道即可判断。

    以下是代码,各位大神若觉得我的理解有问题,欢迎留言沟通。

     

    import matplotlib.pyplot as plt
    import cv2
    
    # cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255,通道格式为(W,H,C)
    img_BGR = cv2.imread('D:/Desktop/lena.jpg')
    plt.subplot(2,2,1)
    plt.imshow(img_BGR)
    plt.axis('off')
    plt.title('BGR')
    
    
    img_RGB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB)
    plt.subplot(2,2,2)
    plt.imshow(img_RGB)
    plt.axis('off')
    plt.title('RGB')
    
    img_GRAY = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2GRAY)
    print(img_BGR.shape)
    print(img_GRAY.shape)
    print(type(img_GRAY))
    print(img_GRAY.astype)
    
    print(img_GRAY.dtype.name, img_BGR .dtype.name)
    
    from skimage import io,data
    img=data.chelsea()
    print(img.dtype.name)
    
    plt.subplot(2,2,3); plt.imshow(img_GRAY);plt.axis('off');plt.title('GRAY')
    
    img_HSV = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2HSV)
    plt.subplot(2,2,4); plt.imshow(img_HSV);plt.axis('off');plt.title('HSV')
    
    plt.show()

    结果如下

    展开全文
  • opencv cv2.imread()

    万次阅读 多人点赞 2019-07-12 10:20:30
    cv2.imread()用于读取图片文件 imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片的形式,有三种: cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1。 cv2.IMREAD_GRAYSCALE:以...

    cv2.imread()用于读取图片文件

    imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片的形式,有三种:

    cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1。
    cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0。
    cv2.IMREAD_UNCHANGED:包括alpha,可以直接写-1
     

    cv2.imread()读取图片后已多维数组的形式保存图片信息,前两维表示图片的像素坐标,最后一维表示图片的通道索引,具体图像的通道数由图片的格式来决定

    展开全文
  • skimage.io.imread与cv2.imread的区别

    万次阅读 多人点赞 2019-04-26 15:24:17
    常见的两种读图方式skimage.io.imread()和cv2.imread(): 1、skimage.io.imread io.imread读出图片格式是uint8(unsigned int);value是numpy array;图像数据是以RGB的格式进行存储的,通道值默认范围0-255。 import...

    欢迎关注WX公众号:【程序员管小亮】

    常见的两种读图方式skimage.io.imread()cv2.imread()

    1、skimage.io.imread

    io.imread读出图片格式是uint8(unsigned int);value是numpy array;图像数据是以RGB的格式进行存储的,通道值默认范围0-255。

    import cv2
    import matplotlib.pyplot as plt
    from skimage import transform 
    import numpy as np
    import skimage.io as io  
     
    train_dir = 'C:\\Users\\Administrator\\代码TRY\\1.jpg'
    
    '''以io.imread方式读取图片'''
    # 读图并显示。
    image = io.imread(train_dir)
    plt.imshow(image)
    

    2、cv2.imread

    cv2.imread读出的图片格式是uint8;value是numpy array;图像数据是以BGR的格式进行存储的,注意是BGR,通道值默认范围0-255,需要将存储类型改成RGB的形式才能正常显示原图的颜色。

    特别是制作tfrecord时,需要将图片通道改成RGB,具体代码如下:

    import cv2
    import matplotlib.pyplot as plt
    from skimage import transform 
    import numpy as np
    import skimage.io as io  
     
    train_dir = 'C:\\Users\\Administrator\\代码TRY\\1.jpg'
     
    '''以cv2方式读取图片'''
    image=cv2.imread(train_dir)
    # 将图像通道分离开。
    b,g,r = cv2.split(image)
    # 以RGB的形式重新组合。
    rgb_image = cv2.merge([r,g,b])
    # 也可以使用这个函数直接转换成RGB形式。
    # image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    plt.imshow(rgb_image)
    

    python课程推荐。
    在这里插入图片描述

    展开全文
  • PIL.Image.open读入的是RGB顺序,而opencv中cv2.imread读入的是BGR通道顺序 。cv2.imread会显示图片更蓝一些。 cv2.imread(path,读取方式)方法 第一个参数是图片的路径。 第二个参数是读取方式:cv2.IMREAD_COLOR:...
  • cv2.imread()

    万次阅读 2018-01-17 15:43:29
    cv2.imread() 使用opencv和caffe的伙伴们,可能会有一个疑问,那就是对于同时读取图片的cv2.imread()和caffe.io.loadimage两个函数,有什么差别? 1、cv2.imread()接口读图像,读进来直接是BGR 格式数据格式...
  • tf.gfile与cv2.imread有啥区别 读取图片的时候,有时候用的是tf.gfile.Gfile,有时直接用cv2.imread,那么这两者之间有什么区别呢,反正我是没看出来,直接百度了。 tf.gfile基本上是使用不太常规的文件系统,例如...
  • cv2.imread读取得到的结果是BGR格式的 可以看到这两者的第一通道和第三通道刚好是反过来的。在某些情况下,比如用cv2.imread读取某张图像,再用io.imsave进行保存,就可以发现输出的图像颜色不对。 所以有的时候...
  • cv2.imread返回None

    2021-03-09 16:59:16
    cv2.imread返回None 图片的路径中含有中文名 不能有中文出现 cv2.imread(英文路径)
  • cv2.imread的用法

    2020-07-18 19:17:37
    使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道 cv2.IMREAD_GRAYSCALE:读入灰度图片 ...
  • cv2.imread读取灰度图像

    千次阅读 2020-06-03 15:34:56
    cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道 cv2.IMREAD_GRAYSCALE:读入灰度图片 cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道 alpha通道是一个8位的灰度通道,该通道用256级...
  • Python cv2.imread()基本参数介绍

    万次阅读 多人点赞 2020-03-02 12:30:00
    cv2.imread() 除了最常用的路径参数之外,第二个参数也至关重要: imread(const string& filename, int flag=1) filename:需要打开图片的路径,可以是绝对路径或者相对路径,路径中不能出现中文。 flag:图像...
  • 这里写目录标题1.背景2.参数3.示例 1.背景 2.参数 3.示例 cv2.imread()用于读取图片文件 imread函数有两个参数,第一个参数是图片路径,第二个...cv2.imread()读取图片后已多维数组的形式保存图片信息,前两维表示图片
  • cv2.imread()及cv2.resize() 参数详解

    千次阅读 2019-12-04 22:29:14
    cv2.imread(filename, flags=None) —— 读取图像。各参数释义: filename: 表示要读取的文件路径(可以是相对路径也可以是相对路径) flags: 表示读取方式,有以下三种: flags 选项 读取方式 cv2.IMREAD...
  • from cv2 import cv2 img = cv2.imread('2.jpg') cv2.imwrite('2.png',img) imread() 就是读取传入参数对应图片的数据 imwrite() 就是把数据写入目标文件中
  • cv2.imread的简单用法

    2021-03-11 20:26:39
    picture = cv2.imread('D:\download\dog.jpg') # 路径中不能有中文 !! # picture = cv2.imread('./dog.jpg') # 表示当前路径下 plt.imshow(picture) # 显示图像 就这么简单,偶然间忘了一查CSDN,好复杂,不如...
  • img = cv2.imread(‘images/1.jpg’) cv2.imshow(‘result.jpg’,img) cv2.waitKey(0) cv2.destroyAllWindows() cv2.waitKey(1) cv2.waitKey(1) cv2.waitKey(1) cv2.waitKey(1) 参考:https://blog.csdn.net/ei1...
  • Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite() 很详细
  • PIL.Image.open与cv2.imread格式问题

    千次阅读 2019-05-27 21:43:08
    常用图片读取方式: PIL.Image.open scipy.misc.imread ...cv2.imread(速度最快) matplotlib.image.imread skimage caffe.io.load_image imagepath='test1.jpg' im1=Image.open(imagepath) im1=np.arr...
  • cv2.imread()和matplotlib.image.imread()除了读取出来的rgb的顺序不一样,对于读取图片的类型要求也不一样,example:将.jpg改为.png,后者读取就有问题,而前者就顺利的读取出来了而且cv2.imread()不能有中文路径,...
  • 1.读入图像:cv2.imread(filename,flags) 2.显示图像:cv2.imshow(winname,mat) 3.保存图像:cv2.imwrite(filename,img,params) 4.灰度转化等:cv2.cvtColor(src,code,dst,dstcn) 5.通道分离:cv2.split(m,mv=...
  • 1cv2.imread() 读入图像。读进来直接是BGR 格式数据格式在 0~255,通道格式为(W, H, C) cv2.imread(文件名,标记) 第一个参数图像应该在工作目录中,或者应该给出完整的图像路径。 第二个参数是一个标志,指定应...
  • PIL.Image.open读入的是RGB顺序,而opencv中cv2.imread读入的是BGR通道顺序 。cv2.imread会显示图片更蓝一些。 cv2.imread(path,读取方式)方法 第一个参数是图片的路径。 第二个参数是读取方式:cv2.IMREAD_COLOR...
  • 1.opencv函数--cv2.imread

    2019-09-01 19:52:03
    cv2.imread(filename, flags=None) 该函数为读入一张图片,他与两个参数 参数说明: filename:图片的路径 flags:图片读入方式,一般采用默认 值枚举 说明 cv2.IMREAD_COLOR 以彩色方式读入 cv2.IMREAD_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,747
精华内容 4,298
热门标签
关键字:

cv2.imread