数字图像处理_02.1_(图像基础)

1.图像类型

图像类型可以分为三种,分别为二值图,灰度图,彩色图。

  • 二值图,顾名思义只有0,255两种值,黑白两种颜色数字图像处理_02.1_(图像基础)_第1张图片
  • 灰度图,常以8位0-255灰度值的灰度图。数字图像处理_02.1_(图像基础)_第2张图片
  • 彩色图,彩色图分为彩色图和伪彩色图,彩色图有RGB三种通道,每个通道0-255个值,而伪彩色图为直接0-255代表一种颜色区分只有一种通道(用处甚微,以后所称彩色图均为三通道彩色图)
    数字图像处理_02.1_(图像基础)_第3张图片

2.图像矩阵表示

图像以矩阵表示。灰度图为二维矩阵表示,彩色图为三位矩阵表示。
分辨率的概念就是水平和竖直方向单位像素的个数。

img.ndim==3
img_gray.ndim==2

可以进行矩阵到图像的模拟,用上期的show()函数显示图像:

#再次给出show()函数的封装以便巩固学习
def show(img):
    if img.ndim==2:
        plt.imshow(img,cmap='gray')#可调整参数vmin=0,vmax=255来调整放缩,细分灰度
    else:
        img=cv.cvtColor(img,cv.COLOR_BGR2RGB)
        plt.imshow(img)
    plt.show()

矩阵模拟灰度图:

A=np.random.randint(0,256,(4,4),dtype=np.uint8)#4*4分辨率
show(A)

图像为:
数字图像处理_02.1_(图像基础)_第4张图片
这里也可以看到灰度图为二维数组:

array([[114,  66, 153,  60],
       [ 45, 149, 118, 167],
       [248,  72, 163, 245],
       [128,  15,  31, 154]], dtype=uint8)

矩阵来模拟彩色图:

B=np.random.randint(0,256,(4,4,3),dtype=np.uint8)#()内的参数为4*4的分辨率,3指的是通道数,而非维数
show(B)

数字图像处理_02.1_(图像基础)_第5张图片
这里也可以看到彩色图为三维数组:

array([[[147, 122, 138],
        [151,  50, 253],
        [228, 196, 165],
        [113,  15, 224]],

       [[  7, 157,   8],
        [214,  59, 101],
        [ 49, 121,  35],
        [  8,  70,  96]],

       [[ 58, 184,  46],
        [131, 140, 238],
        [ 97, 244, 243],
        [245, 157, 118]],

       [[ 29,  62, 238],
        [143, 132,  13],
        [181,   7, 157],
        [130, 139, 136]]], dtype=uint8)

3.通道及通道的分离与合并

RGB红绿蓝三色通道,OpenCV中读取图像为BGR三色通道,只是颜色顺序不同,本质都是矩阵数据。
彩色图为三色通道叠加而成。数字图像处理_02.1_(图像基础)_第6张图片

数字图像处理_02.1_(图像基础)_第7张图片
接下里是关于彩色图像转为灰色图像的函数使用:

img_gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
show(img_gray)

数字图像处理_02.1_(图像基础)_第8张图片
再从灰度图像转为二值图:

x,img_bin=cv.threshold(img_gray,125,255,cv.THRESH_BINARY)
#其中第一个参数为灰度图像,第二个参数为分界值125,即为当thresh>125置为255,否则置为0,
show(img_bin)

当然,这里有其他可以设置二值图的方案可以自行选择

threshold=125
img_gray[img_gray>threshold]=255
img_gray[img_gray<=threshold]=0
show(img_gray)

数字图像处理_02.1_(图像基础)_第9张图片
OpenCV中给出了三色通道分离与合成的相关函数:

#分离
b,g,r=cv.split(img)
#合成
img2=cv.merge([b,g,r])

你可能感兴趣的:(数字图像处理,opencv,python)