图像基本知识

    在彩色图像中,图像可用一个二维矩阵表示,其中每个元素是RGB值,RGB每个占一个字节(8位),总共三个字节,每个字节取值范围是0-2^8(255),也可以说是三通道的,分别是R,G,B,比如(255,0,0)代表红色,(0,255,0)代表绿色,(0,0,255)代表蓝色,其他颜色是这三个颜色的混合。
    在灰色图像中,每个元素只有单通道,即只有一个值。

    在python中可通过numpy获得图像的RGB值:

    from PIL import Image
    import numpy as np
    a = np.array(Image.open('111.jpg'))
    print(a.shape,a.dtype)
    >>>(1080, 1440, 3),uint8#图像为1080*1440*3字节,高为1080像素,宽为1440像素,3为通道数。R,G,B用二进制的8位来表示(uint8)。

    位深度:
    位深度是把通道数转化为位,即3通道位深度为3*8=24位。

    分辨率,分辨率即为高像素*宽像素,如1080*1440分辨率

    DPI(Dots Per Inch,每英寸像素点数)
    通过DPI和像素可以求出图片的实际尺寸,如1080*1440分辨率,DPI96,那么图片实际高为1080/96 = 11.25英寸,宽为1440/96=15英寸。
    图片清晰程度不是由像素决定,而是用DPI来决定,DPI越大,清晰度越高。
    :鼠标的DPI参数指的是鼠标在桌面上移动1英寸的距离的同时,鼠标光标能够在屏幕上移动多少“点”。越高,移动越快越灵敏。

    图像的变换
    通过python可以改变图像的RGB值:

    from PIL import Image
    import numpy as np
    a = np.array(Image.open('111.jpg'))
    print(a.shape,a.dtype)
    b = [255,255,255] - a#利用ndarray数组的广播机制
    b = Image.fromarray(b.astype('uint8'))#依旧采用24位色深
    b.save('222.jpg')

    转换前和转换后的图像为:
    转换前:
    这里写图片描述
    转换后:
    这里写图片描述

    将彩色图片变为灰度值图片:

    from PIL import Image
    import numpy as np
    a=np.array(Image.open('111.jpg').convert('L'))#convert('L')是PIL库中将彩色图片转化为灰度图片。
    print(a.shape,a.dtype)
    b = Image.fromarray(a.astype('uint8'))
    b.save('333.jpg')
    >>>(1080, 1080) uint8#图像变为二维数组,即通道数为1,成为了灰度图像。

    转换后的图像为:
    这里写图片描述

    其他还有很多变换:
    比如
    区间变换:b = 100/255*a+150
    平方变换:b = 255*(a/255)**2

    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值