小白入门计算机视觉(二) : 图像基本处理----灰度图和二值化


从本节开始,我就要正式踏上小白的计算机视觉探索之路,先从图像基础学习吧

解剖图像

要学会图像处理首先就得知道图像的结构,平时我们见到的图片有彩色的,也有黑白的,还有灰色图,尤其是手机里的美图工具,有很多图片效果可以供我们选择,图片的存储大小也可以自己自定义去更改,我们先探索一下图像的构造

像素

像素是分辨率的单位,也是构成位图图像的基本单元,并且每个像素都有自己的颜色,所以才能看到色彩不一,清晰度不同的图片

分辨率

分辨率也可以称作是解析度,就是单位英寸内的像素点数,单位为PPI(Pixels Per Inch)。但是在平时分辨率总被我们错误的认为就是位图图像内的像素点数量

色调

各种图像色彩模式下原色的明暗程度,级别范围从0到255,共256级色调,这也是图像为什么能展示出不同的颜色。
我们常见的彩色图像有两种类型:RGB(光学原色)和CMYK(色彩原色)。RGB表示的是:红,蓝,绿,,主要用于相机,视频等;CMYK表示的是:青,品红,黄,黑,主要用于印刷行业

图像视觉指标

对比度:指不同颜色之间的差别。对比度=最大灰度值/最小灰度值
亮度:这个容易理解,就是让图像色彩更加鲜亮
锐度:即清晰度,它是反映图像平面清晰度和图像边缘锐利程度的一个指标
色度:色彩的纯度,也叫饱和度或彩度

图像处理基本原理

RGB模型

RGB
RGB色彩模式是工业界的一种颜色标准,这个标准几乎包括了人类实例所能感知的所有颜色。通过上面这张图就可以看出当三个原色都不覆盖的区域,就呈现出黑色,当三个原色叠加起来中心最亮的叠区为白色的,所以在图像处理过程中[0,0,0]表示的是黑色,[255,255,255]表示的是白色。
RGB的每个通道都有0-255共256级色彩,按这样计算,整个RGB模型可以组合出256x256x256=16777216中色彩,通常也称1600万色或者24位色(2的24次方)。说到这里还有一种ARGB模型,也就是色彩模式加上Alpha(透明度)通道,常见于32位位图的存储结构。
RGB模型的元神其实就是三维直角坐标系中的一个单位立方体(图中的每个点显示的是RGB值不是坐标),在正方体的主对角线上的RGB分量都相等,就会产生由暗到亮的黑白图像,这便是灰度。(0,0,0)是黑色,对应的RGB就是[0,0,0],(1,1,1)是白色,对应的RGB就是[255,255,255]
RGB模型

灰度

表示图像像素明暗程度的数值,也就是黑白图像中点的颜色深度。范围一般为0-255。白色为 255,黑色为0。

灰度化作用

处理图像时候为什么要先灰度化呢?主要有两个原因

1. RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配
2.减小图像原始数据量,便于后续处理时计算量更少

灰度化的方法

常用的图像灰度化有四种算法:分量法,最大值法,均值法,加权均值法

分量法
分量法就是用RGB三个分量的某一个分量作为该点的灰度值
G r a y ( R ) ( i , j ) = R ( i , j ) Gray_{(R)}(i,j)=R(i,j) Gray(R)(i,j)=R(i,j)
G r a y ( G ) ( i , j ) = G ( i , j ) Gray_{(G)}(i,j)=G(i,j) Gray(G)(i,j)=G(i,j)
G r a y ( B ) ( i , j ) = B ( i , j ) Gray_{(B)}(i,j)=B(i,j) Gray(B)(i,j)=B(i,j)
python实现分量法

def gray_RGB_one(img,temp):
    '''
    :param temp: 分量 B:0,G:1,R:2
    :return:
    '''
    # 读取图片
    image = cv2.imread(img)
    size = image.shape
    #这里是要利用numpy创建一个图像,完整代码我会在后面附上
    grayimg = create_img(size[:2],255)
    for i in range(size[0]):
        for j in range(size[1]):
            grayimg[i, j] = image[i,j][temp]
    return grayimg

最大值法
最大值法就是将彩色图像中的三分量亮度的最大值作为灰度图的灰度值
G r a y ( i , j ) = m a x ( R ( i , j ) , G ( i , j ) , B ( i , j ) ) Gray(i,j)=max(R(i,j),G(i,j),B(i,j)) Gray(i,j)=max(R(i,j),G(i,j),B(i,j))
python实现最大值法

def gray_max(img):
    # 读取图片
    image = cv2.imread(img)
    size = image.shape
    grayimg = create_img(size[:2], 255)
    for i in range(size[0]):
        for j in range(size
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值