精华内容
下载资源
问答
  • 一个转换程序,可以将24位深度的BMP图片,转为16位深度图片
  • 从双目视觉图片,左右双摄得到的图像,来获取图片深度信息。从而用于构建3d图片
  • 最近调用热敏打印机需要打印单色,位深度为1的bmp照片,找了半天网上都是半成品,最后实现了,先谢谢各位大神,整体还是很有帮助,但是还是有些差距。
  • 深度学习之多标签图片分类(PyTorch版) 》课程从实战的角度出发,基于真实数据集并结合实际业务出发点,介绍深度学习多标签图片分类通用解决方案,通过本课程,彻底掌握多标签图片分类项目。  从0到1讲解如何...
  • 改变图片的位深度 """ from PIL import Image import numpy as np import cv2 import os # 方法一: # 单张图片 # img = Image.open(r'C:\Users\znjt\Desktop\huhui\40051.jpg') # img = Image.fromarray(np.uint8...

    代码如下:

    """
    2020.09.26:alian
    改变图片的位深度
    """
    from PIL import Image
    import numpy as np
    import cv2
    import os
    
    
    #  方法一:
    # 单张图片
    # img = Image.open(r'C:\Users\znjt\Desktop\huhui\40051.jpg')
    # img = Image.fromarray(np.uint8(img))
    # t = img.convert('L')
    # img=Image.fromarray(np.uint8(t)*255)
    # img.save(r'C:\Users\znjt\Desktop\huhui\40051(8).jpg')
    
    # 批量转换图片位深度
    path = r'C:\Users\znjt\Desktop\huhui\test\\'
    save_path = r'C:\Users\znjt\Desktop\huhui\\'
    for i in os.listdir(path):
        img = Image.open(path+i)
        img = Image.fromarray(np.uint8(img))
        t = img.convert('L')
        img = Image.fromarray(np.uint8(t))  # *255
        img.save(save_path+i)
    
    
    # 方法二
    # img = cv2.imread(r'C:\Users\znjt\Desktop\huhui\40051.jpg')
    # img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # cv2.imwrite(r'C:\Users\znjt\Desktop\huhui\40051(8).jpg',img)
    

    笔者写了两种方法,都可以使用,转换结果如下所示:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 在进行深度学习之前,往往需要创建一个用于训练的图片数据集,且一般要求训练集具有统一 的格式和大小。本文以批量处理大小不一 的jpg图片为例,介绍批量处理的一些问题。方法仅供参考。 import os ...

    在进行深度学习之前,往往需要创建一个用于训练的图片数据集,且一般要求训练集具有统一 的格式和大小。本文以批量处理大小不一 的jpg图片为例,介绍批量处理的一些问题。方法仅供参考。
    程序如下:

    ###本程序用于将.jpg格式的图片批量转化为.npg灰度图像
    import os
    from PIL import Image
    
    infile = './flowers/'
    outfile = './flowers-gray/'
    folddirs = os.listdir(infile)
    filecount = 0
    for foldername in folddirs:
        filepath = infile+ foldername
    
    filedirs = os.listdir(filepath)
    img_num = int(len(filedirs))
    for filename in filedirs:
        img_path = filepath + '/' + filename
        img = Image.open(img_path).convert('L')
        out = img.resize((64,64),Image.ANTIALIAS)
        filecount = filecount + 1
    
        print(filecount)
    
        newfilename = outfile + foldername + '/' + foldername + str('_')+str(filecount) + '.png'
        out.save(newfilename)
    

    特别说明:

    infile = './flowers/'   #用于存储原始图片
    outfile = './flowers-gray/'  #用于存储灰度图片
    

    本文数据下载地址:
    http://download.tensorflow.org/example_images/flower_photos.tgz
    解压后的文件夹包含了5个子文件夹,每一个子文件夹的名称为一种花的名称,代表了不同的类别,每种花大概有几百张图片,每一张图片都是RGB色彩模式的,大小也不相同。若官网下载太慢或者无法下载,可在本博客留言索取。
    为方便阅读程序,本程序需要手动创建文件夹。
    文件夹如下:
    在这里插入图片描述
    flowers中的文件夹,flowers-gray下文件夹一样:
    在这里插入图片描述

    END!

    展开全文
  • 深度学习--------图片的位深度含义

    万次阅读 多人点赞 2018-11-15 00:58:04
    以前没接触深度学习的时候没注意过图片深度的问题,最近研究深度学习图片输入弄的也是莫名奇妙,焦头烂额。记录一下自己搜的资料的总结。首先要明白计算机的储存方式位二进制,只有0和1,因此图片的像素矩阵也不...

     

    以前没接触深度学习的时候没注意过图片位深度的问题,最近研究深度学习图片输入弄的也是莫名奇妙,焦头烂额。记录一下自己搜的资料的总结。首先要明白计算机的储存方式位二进制,只有0和1,因此图片的像素矩阵也不例外

    这里可以看到图片的位深度为16,因此可以表示的颜色为2**16=655536

    但是为什么是2的16呢,这里就是因为计算机的储存方式了。因为是从0开始所以,65535转化为二进制,1111 1111  1111 1111 每一位有两种形式0和1,因此是2**16。同理其他的位深度也是这样计算。

    现在转入正题,图片转化位数组形式,目前我掌握的有两 种方式:

    import cv2
    import numpy as np
    import skimage.io
    list = np.zeros((500,500))
    list[:30,50:500] = 125
    cv2.imwrite('1.png',list)
    # cv2.S
    # print(list)
    img = cv2.imread('1.png')
    img2 = skimage.io.imread('1.png')
    print(img.shape)
    print(img2.shape)

    生成一个二维数组,然后保存成图片,再用两种方式去读取看看会发生什么。

    (500, 500, 3)
    (500, 500)
    

    可以看出opencv默认的读取方式就是按照三维数组后面是通道数,而skimage是按照原始的形式去读取。如果设置三维的图片呢。修改代码:

    list = np.zeros((500,500,3))
    

    输出结果:

    (500, 500, 3)
    (500, 500, 3)

    全部都是三维了。

    但是我转念一想如果是4通道呢

    list = np.zeros((500,500,4))
    

    输出结果:

    (500, 500, 3)
    (500, 500, 4)

    opencv竟然依旧是三维的,怎么回事呢,原来opencv读取默认是rgb的方式,如果要加上通道则后面加上参数-1,0则为灰度图,没有通道数,1就是默认rgb 3通道。好了读取的方式现在明白了,那么不同位深度如何转换呢。先上一段代码,这个代码来自别人,图像处理时,我偶然发现位深度竟然改变了。

    def change(img):
        t = img.astype(np.float32)
        # 减小异常值的影响
        maxv = np.percentile(t, 99)
        minv = np.percentile(t, 1)
        t = (t-minv)/(maxv-minv)
        meanv = t.mean()
        # 均值统一拉到0.5
        t += (0.5-meanv)
        # 扩大范围至0-65535
        t *= 65535
        t[t<0] = 0
        t[t>65535] = 65535
        img = t.astype(np.uint16)
        cv2.imwrite('5.png',img)

    PS:在处理四通道的图片的时候我竟然又有了新的发现(我的发现为什么这么多,无知啊,知识了解的太少,各位同学记得好好学习)修改代码,

    list = np.zeros((500,500,4))
    list[50:100,50:100] = 255
    cv2.imwrite('1.png',list)

    这个代码本来应该生成一个中间有一个白色板块,其他都是黑色的图片,但是结果呢

     

    3通道
    3通道生成图片
    4通道生成图片

     

    只有一个白色的框,很明显四通道中数值为0的是透明的,因为rgba的a通道是透明通道,原来如此,竟然是透明的。

    继续用change函数看下结果如何。这里需要说明一下,2维数组位深度位为8,三通道则是24,四通道则是32,为什么一开始是8这里其实我不是很明白,但是根据上面说明的,8通道总共的颜色是2**8=256 而我们熟知的rgb正好是0-255,所以应该是和计算机显示有关系,但是并不影响了,同时还涉及到图片格式,坑以后填上。在最后一个通道上的测试中我又发现了(好吧,发现了就记得,不然明天就忘记了)

    我尝试读取一张彩色的图片的时候输出的像素矩阵究竟最后一位是255,那么如果把最后一位变成0对前面的有什么影响吗,(数组全是0的,图片颜色会随着最后一位通道数0-255而逐渐变深,就是最后通道数值为255的时候图片是全黑的上度娘)通过度娘的一番诉说,发现自己真的无知第四个是透明通道,数值变成255意思就是百分百不透明啊,不透明不是黑色难道不成是粉色?不过利用这一点可以用代码实现图片透明度的改变。

    ist[:,:,3]=100#数组切片,索引最后一个可以理解为行数吧,但其实是维度,但是正好对应,这样也好理解,
    #或者就理解成对应的通道数,0是r,1是g,2是b,3是a,把第四个通道行列全部裁剪,值变成100
    a通道为0原图
    a通道为100图

     

     

     

     

     

     

    但是如何把一张黑图变成粉色的呢,首先我搜到了粉色的rgb值(241,204,226)

    改写代码:

    img = skimage.io.imread('1_255.png')
    img[:,:,0]=249
    img[:,:,1]=204
    img[:,:,2]=226
    print(img)
    cv2.imwrite('fen.png',img)

    出来的结果:

     

     

     

     

    和想想中不太一样啊,黑的就算是变成粉色很不自然

     

     

     

     


    那么到底深度是如何改变的呢:我突然想起了开头的16位深度,和代码中的数值  t *= 65535  数组中的每个数值都 * 65535,这样如果有数据,数据不都变成比65535大的数值了吗,用二进制位数表达时,位数不就改变了吗?但是要是数值是0,或者数值不为0,乘积肯定要大于 65535,这就不只是64位,但是     t[t<0] = 0 t[t>65535] = 65535这两个条件限制了范围,统统16位表示,当然了这里不是排列组合所以是,4*16=64,神奇的二进制!

    由此提出两个猜想:一、位深度是数据中最大的一个数的数值的二进制长度*通道数。二、以上猜想正确。

    为了验证我的猜想,我做了如下实验:全部是0,或全部和1

    一维数组,位深度8  三维数组 位深度24 四维数组 位深度32

    可见并不是如猜想那样,0也很神奇,二进制0的长度可以变化?还是如果没有最大值的时候,会根据维度默认补全生成?

    或者是图片一个通道按照标准必须是2**8 = 256 255转化位二级制 1111 1111 如果这样,我的猜想在标准成立的条件下是成立的,现在认为猜想在每个通道初始是8的基础上成立,那么用此猜想改变下位深度试试。如果三个维度分别是16,48,64,那么此猜想可作为经验来解决改变位深度的问题。上结果

    完全ok!



    ps:opencv和skimage读取图片的方式其实是不一样的,opencv是按照bgr的方式读取,并且就转成rgb,用cv2保存时依旧是bga

    解决方法就是用skimage去保存转换后的图片。

    展开全文
  • 深度学习中各种图像库的图片读取方式总结 在数据预处理过程中,经常需要写python代码搭建深度学习模型,不同的深度学习框架会有不同的读取数据方式(eg:Caffe的python接口默认BGR格式,Tensorflow默认RGB格式...
    • 深度学习中各种图像库的图片读取方式总结

    在数据预处理过程中,经常需要写python代码搭建深度学习模型,不同的深度学习框架会有不同的读取数据方式(eg:Caffe的python接口默认BGR格式,Tensorflow默认RGB格式),经常需要借助python图像库来读取图像并进行一系列的图像处理工作。

    这篇文章总结了Python图像库处理数据的基本方式:
    1.Opencv
    2.PIL(pillow)
    3.matplotlib.image
    4.scipy.misc
    5.skimage
    6.Tensorflow


    opencv: cv2.imread

    opencv是最常用的图像处理库

    基本图像操作:

    import cv2
    import numpy as np
    #读入图片:默认彩色图,cv2.IMREAD_GRAYSCALE灰度图,cv2.IMREAD_UNCHANGED包含alpha通道
    img = cv2.imread('aa.jpg')
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 转换为灰度图
    img1 = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 转换为RGB
    cv2.imshow('src',img)
    cv2.imshow('gray',gray)
    cv2.imshow('RGB',img1)
    print(img.shape) # (h,w,c)
    print(img.size) # 像素总数目
    print(img.dtype) # 像素类型
    cv2.imwrite('test.jpg',img1) # 保存图像
    cv2.waitKey()
    

    值得注意的是:
    1.opencv读进来的图片已经是一个numpy矩阵了,彩色图片维度是(高度,宽度,通道数)。数据类型是uint8。
    2.opencv读进来的图片的通道排列是BGR,而不是主流的RGB

    Caffe使用opencv处理图像的基本操作:

    import os
    import numpy as np
    import cv2
    import sys
    
    caffe_root = './fancp/caffe/'  #指定caffe路径
    sys.path.insert(0, caffe_root + 'python')
    import caffe
    
    def predict(path, deploy, weight):
        net = caffe.Net( deploy, weight, caffe.TEST)    
        batch_size, channels, height, width = net.blobs['data'].data.shape
        X = np.zeros([1,channels,height,width], dtype = np.float32) # caffe的输入格式[N,C,H,W]
        
        img = cv2.imread(path).astype(np.float32)# 读取图片,并进行类型转换
        Img = cv2.resize(img,(102,102))[11:90,11:90,::-1]# Resize以及ROI操作
        img -= 127.5
        img /= 128.0 # 归一化操作
    	img = np.transpose(img,(2,0,1)) # 通道转换,有H,W,C转变成 C,H,W
    	#在深度学习搭建CNN时,往往要做相应的图像数据处理,比如图像要扩展维度,比如	扩展成(batch_size,channels,height,width)。
        img=np.expand_dims(img,axis=0)
        
        X[0,:,:,:] = img
        net.blobs['data'].data[...] = X
        output = net.forward()
        output = output['logits'][0]
    	print(output) # 输出结果
    
        return 0
        
    if __name__ == '__main__':
        #caffe.set_device(0)
        #caffe.set_mode_gpu()
        caffe.set_mode_cpu()
        model_def =  '**.prototxt'
        model_weights =  '**.caffemodel'
    
        image = 'test.jpg'
        result = predict(image, model_def, model_weights)
    
    

    PIL:PIL.Image.open

    PIL即Python Imaging Library,也即为我们所称的Pillow,是一个很流行的图像库,它比opencv更为轻巧,正因如此,它深受大众的喜爱。

    图像的基本操作:

    from PIL import Image
    import numpy as np
    img = Image.open('aa.jpg')
    print(img.format) 
    print(img.size) #注意,省略了通道。 (w,h)
    print(img.mode)  #L为灰度图,RGB为真彩色,RGBA为加了透明通道
    img.show() # 显示图片
    gray = img.convert('L') # 转化为灰度图
    gray.show()
    #pillow读进来的图片不是矩阵,我们将图片转矩阵
    arr = np.array(img)
    print(arr.shape)
    print(arr.dtype)
    #矩阵再转为图像
    new_im = Image.fromarray(arr)
    new_im.save('test.png')
    
    

    注:
    1.PIL读进来的图像是一个对象,而不是我们所熟知的numpy 矩阵。
    2.PIL的通道顺序是RGB

    图像操作:

    
    #分离合并通道
    r, g, b = img.split()
    img = Image.merge("RGB", (b, g, r))
    img = img.copy() #复制图像
    #ROI获取
    img3 = Image.open('1.jpg')
    roi = img3.crop((0,0,300,300)) #(左上x,左上y,右下x,右下y)坐标
    roi.show()
    

    matplotlib:matplotlib.image.imread

    matplotlib多用于科学绘图

    图像的基本操作:

    import matplotlib.pyplot as plt
    import numpy as np
    image = plt.imread('aa.jpg')
    plt.imshow(image)
    plt.axis('off') #也可以关闭显示x,y轴上的数字
    plt.show()
    #plt.imread读入的就是一个矩阵,跟opencv一样,但彩图读进的是RGB,与opencv有区别
    print(image.shape) # (h,w,c)
    print(image.size)
    print(image.dtype) 
    

    综合例子:

    import matplotlib.pyplot as plt
    import numpy as np
    im_lol1 =  plt.imread('aa.jpg')
    im_lol2 =  plt.imread('aa.jpg')
    figure = plt.figure(figsize=(10,5)) # 调整显示图片的大小
    '''
    figsize参数:指定绘图对象的宽度和高度,单位为英寸;dpi参数指定绘图对象的分辨率,
    即每英寸多少个像素,缺省值为80。因此本例中所创建的图表窗口的宽度为8*80 = 640像素
    '''
    plt.axis("off")#不显示刻度 
    ax = figure.add_subplot(121) # 图片以1行2列的形式显示
    plt.axis('off')
    ax.imshow(im_lol1) #第一张图
    ax.set_title('image 1')#给图片加titile 
    ax = figure.add_subplot(122) 
    plt.axis('off')
    ax.imshow(im_lol2) 
    ax.set_title('image 2')#给图片加titile 
    
    plt.savefig('twp.jpg')
    plt.show()
    

    scipy.misc:scipy.misc.imread

    图像的基本操作:

    from scipy import misc
    import matplotlib.pyplot as plt
    im = misc.imread('aa.jpg')
    print(im.dtype)
    print(im.size)
    print(im.shape)
    misc.imsave('misc1.png',im)
    plt.imshow(im)
    plt.show()
    

    :imread和imsave在后来的版本将会被弃用,现在使用imageio.imread和imageio.imwrite。

    深度学习中使用misc:

    from scipy import misc
    import numpy as np
    import matplotlib.pyplot as plt
    
    image = misc.imread('./fancp/aa.jpg')
    image = misc.imresize(image, (112,96))
    image = image.astype(np.float32)
    image -= 127.5
    image /= 128.0
    image = image[10:89,10:89,:]
    image = image.transpose(2, 0, 1)
    print(image.shape)
    

    skimage:skimage.io.imread

    图像的基本操作:

    from skimage import io
    from skimage import color
    
    im = io.imread('aa.jpg')
    print(im.shape) # numpy矩阵,(h,w,c)
    print(im.dtype)
    print(im.size)
    im3 = color.rgb2grey(im)# 灰度化处理
    io.imshow(im3)
    io.imsave('sk.png',im)
    

    :图像也是以numpy array形式读入


    Tensorflow:tf.image.decode

    1.TensorFlow函数:tf.image.decode_bmp

    tf.image.decode_bmp函数:

    tf.image.decode_bmp(
        contents,
        channels=0,
        name=None
    )
    

    将BMP编码图像的第一帧解码为uint8张量。
    attr channels表示解码图像的期望数量的颜色通道。
    接受的值是:
    0:使用BMP编码图像中的通道数量。
    3:输出RGB图像。
    4:输出RGBA图像。

    参数:
    contents:string类型的Tensor,0维,BMP编码的图像。
    channels:可选的int,默认为0。
    name:操作的名称(可选)。

    返回值:
    函数返回uint8类型的Tensor。

    2.TensorFlow函数:tf.image.decode_jpeg
    tf.image.decode_jpeg函数:

    tf.image.decode_jpeg(
        contents,
        channels=0,
        ratio=1,
        fancy_upscaling=True,
        try_recover_truncated=False,
        acceptable_fraction=1,
        dct_method='',
        name=None
    )
    

    将JPEG编码图像解码为uint8张量。
    attr channels表示解码图像的期望数量的颜色通道。
    接受的值是:
    0:使用JPEG编码图像中的通道数量。
    1:输出灰度图像。
    3:输出RGB图像。
    如果需要,JPEG编码的图像将被转换以匹配请求的颜色通道数量。
    attr ratio允许在解码过程中将图像缩小整数倍。允许的值为:1、2、4和8。这比稍后缩小图像要快得多。

    参数:
    contents:string类型的Tensor,0维,JPEG编码的图像。
    channels:可选的int,默认为0,解码图像的颜色通道数量。
    ratio:可选的int,默认为1,缩小比例。
    fancy_upscaling:可选的bool,默认为True,如果为true,则使用更慢但更好的色度平面升级(仅限yuv420 / 422)。
    try_recover_truncated:可选的bool,默认为False,如果为true,则尝试从截断的输入中恢复图像。
    acceptable_fraction:可选的float,默认为1,在截断输入之前所需的最小行数被接受。
    dct_method:可选的string,默认为"",用于指定用于解压缩的算法提示的字符串;默认为“”,映射到系统特定的默认值。当前有效值为[“INTEGER_FAST”,“INTEGER_ACCURATE”]。
    name:操作的名称(可选)。

    返回值:
    该tf.image.decode_jpeg函数将返回uint8类型的Tensor。

    3.TensorFlow函数:tf.image.decode_png
    tf.image.decode_png函数:

    tf.image.decode_png(
        contents,
        channels=0,
        dtype=tf.uint8,
        name=None
    )
    

    将PNG编码的图像解码为uint8或uint16张量。
    attr channels表示解码图像的期望数量的颜色通道。
    接受的值是:
    0:使用PNG编码图像中的通道数量。
    1:输出灰度图像。
    3:输出RGB图像。
    4:输出RGBA图像。
    如果需要,将PNG编码的图像转换为与请求的颜色通道数匹配。
    此操作还支持解码JPEG和非动画GIF,因为界面相同,但使用tf.image.decode_image将更清晰。

    参数:
    contents:string类型的Tensor,0维,PNG编码的图像。
    channels:可选的int,默认为0,解码图像的颜色通道数量。
    dtype:可选的tf.DType,其来自:tf.uint8,tf.uint16,默认为tf.uint8。
    name:操作的名称(可选)。

    返回值:
    该函数返回dtype类型的Tensor。

    4.TensorFlow函数:tf.image.decode_image
    tf.image.decode_image函数

    tf.image.decode_image(
        contents,
        channels=None,
        name=None
    )
    

    decode_bmp,decode_gif,decode_jpeg和decode_png的方便函数。
    检测图像是否为BMP,GIF,JPEG或PNG,并执行相应的操作将输入字节string转换为类型uint8的Tensor。
    注意: decode_gif返回一个4维数组[num_frames、高度、宽度、3],而不是decode_bmp、decode_jpeg和decode_png,后者返回3维数组[height, width, num_channels]。如果您使用BMP、JPEG或PNG文件混合GIF文件,请确保在构造图表时考虑到这一点。

    参数:
    contents:0-D string,编码的图像字节。
    channels:可选的int,默认为0,解码图像的颜色通道数量。
    name:操作的名称(可选)

    返回值:
    对于BMP、JPEG和PNG图像,形状为[height, width, num_channels]或者对于GIF图像,形状为[num_frames, height, width, 3]的类型为uint8的Tensor。

    可能引发的异常:
    ValueError:通道数量不正确。

    5.TensorFlow将raw格式转换为张量
    tf.decode_raw函数

    decode_raw ( 
        bytes , 
        out_type , 
        little_endian = None , 
        name = None
     )
    

    将字符串的字节重新解释为数字的向量。

    ARGS:
    bytes:字符串类型的张量。所有元素的长度必须相同。
    out_type:一个选自:tf.half,tf.float32,tf.float64,tf.int32,tf.uint8,tf.int16,tf.int8 以及 tf.int64 的 tf.DType 。
    little_endian:可选的 bool 值,默认为 True。输入字节是否为小字节顺序。忽略存储在单个字节 (如 uint8) 中的 out_type 值。
    name:操作的名称(可选)。

    返回:
    out_type 类型的张量。一个比输入字节多一个维度的张量。添加的维度的大小将等于字节的元素的长度除以要表示 out_type 的字节数。


    总结:
    除了opencv读入的彩色图片以BGR顺序存储外,其他所有图像库读入彩色图片都以RGB存储。
    除了PIL读入的图片是img类之外,其他库读进来的图片都是以numpy 矩阵。

    参考
    https://www.cnblogs.com/skyfsm/p/8276501.html
    https://www.w3cschool.cn/tensorflow_python/


    注:博众家之所长,集群英之荟萃。

    在这里插入图片描述

    展开全文
  • 深度学习-图片识别(上)

    千次阅读 2018-03-27 11:39:15
    深度学习-图片识别(上) 本文主要针对优达学城深度学习课程中的练习题,整理练习内容,有兴趣者可结合本文内容然后按练习题实践,帮助理解。 任务一:下载并整理数据 任务主要完成图片下载、图片内容数字化、...
  • 彩色图片深度图片生成点云文件
  • Unity 深度图片获取

    千次阅读 2017-03-07 20:07:07
    1、 在Unity中,要得到深度缓存(Depthbuffer),就需要用到一个RenderTexture纹理。 2、 深度缓存,或者深度纹理,其实就是一个包含有场景里物体离照相机的距离值的一张纹理图。 3、 为了让摄像机生成一张深度纹理...
  • 深度学习中RGB图片归一化

    千次阅读 2019-11-24 20:12:00
    PIL.Image.open读入的是RBG顺序,而cv2.imread读入的是BGR顺序. 转为0-1之间的数据:img = img.astype(np.float32) / 255. RGB这3个通道的均值和方差为:img_mean=[0.485, 0.456, 0.406] img_std = [0.229,0.224,0....
  • [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(上) [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(中) 以及原文的地址: http://bamos.github.io/2016/08/09/deep-completion/ 最后一部分...
  • java 生成带logo、文本的二维码并修改图片的位深度,不努力的程序员不是一个好的程序员
  • 最近整理了在图像深度学习方面的一部分工作,开源了一个不良图片检测的CNN模型(Mosaic Model),放在了github上。目前github上开源了最新的模型,以及demo的python文件,可以直接下载使用,后续会维护模型更新,...
  • OpenCV对不同图像深度的处理(转),这是我从网上收集过来的额!
  • 像mnist数据,cifar10数据,说实话这对于我这种小白来说用处不大,例子程序跑了几篇对于它的运行方式还是模模糊糊的,前一段时间在网上找到一个用猫狗图片数据做自己的深度学习的视频系列,感觉蛮有用的,这是链...
  • python工具(1) — 图片的位深度压缩

    千次阅读 2016-07-27 07:58:27
    python脚本,使用pngquant开源工具来压缩图片
  • python opencv 获取图片的宽 高 深度

    万次阅读 2017-11-15 11:49:46
    使用shape来获取图片的宽高深度 import cv2 import numpy as np fn="baboon.jpg" if __name__ == '__main__': print 'load %s as ...' % fn img = cv2.imread(fn) sp = img.shape print sp sz1 = sp[0]#he
  • 深度学习笔记 深度学习(六十九)darknet 实现实验 Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffma 深度学习(六十八)darknet使用 深度学习(六十七)metal forge深度学习库...
  • 请问下面这个图如何生成的,matlab、Opencv或者C++。能简单说下原理么?非常感谢!
  • 深度强化学习1——强化学习到深度强化学习

    万次阅读 多人点赞 2018-10-05 22:04:43
    从事深度强化学习有一段时间了,整理了网上的一些资料,写几篇博客作为知识的梳理和总结。 开讲前,先给大家看个深度强化学习的例子,下面是深度学习cnn和强化学习结合玩吃豆人的游戏 看图像我们会发现吃豆人会...
  • C# bmp图片另存为位图 位深度1

    千次阅读 2017-09-26 15:21:57
    用微软自带的画图,打开一个已经存在的单色PNG图片文件,然后复制图像粘贴上去,做点反色或其他处理再保存,可以得到黑白单色PNG图片;但是,如果有很多黑底白字的图片要想改成白纸黑字的单色PNG格式保存这就很麻烦...
  • Opencv 图像深度+转换深度

    万次阅读 2018-08-06 17:09:51
    1. opencv 图像深度 图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.图像深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像中可出现的最多...
  • 深度学习图像标注工具

    千次阅读 2018-06-03 14:41:13
    深度学习(目标检测。图像分割等)图像标注工具汇总 ...
  • 关于图像位深度,色深的小结 **说明:**有不对的地方恳请指正,这方面不是太确定。 1. 正文 一张图像包括基本的信息(长,宽,通道) from PIL import Image import numpy as np img = Image.o...
  • 图像转化为深度图,深度图转化为图像,点云转化为深度图 原图像: 深度图像: 额外插图: 将点云数据转化为深度图像(上面点云三维图,下面深度图)不是一一对应关系 代码: from PIL import Image import numpy ...
  • 深度学习图片分类实战学习

    千次阅读 2020-10-10 01:20:51
    开始记录学习深度学习的点点滴滴 深度学习图片分类实战学习 前言 一、深度学习 二、使用步骤 1. 自建网络模型 2. 进行深度学习的学习迁移 注意事项 前言 随着人工智能的不断发展,这门技术也越来越重要,很多人都...
  • 获取深度图任意指定点的深度

    万次阅读 2018-03-26 09:16:44
    在立体视觉开发的时候,我们常常需要观察摄像头所获取图像的深度值规律,以便进一步提取特征 而在我们提取深度值的时候,往往更希望能够快速准确的获取指定点的深度值 本程序基于Kinect2所获取的深度图,其余...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 242,237
精华内容 96,894
关键字:

图片深度