图像采集
原理
图像采集是将一幅在空间上连续分布的模拟图像分割成M * N的网格,每个网格称为一个像素,M*N称为图像的空间分辨率。根据香农采样定理,只要采样的频率大于被采样信号最高频率的2倍,就可以由采样信号对原始信号的形态进行完整恢复。图像采集可以看作是对原始图像信号的一种数字化逼近。
例子
对咖啡杯图像进行不同频率采样后所得结果。
量化
原理
模拟图像经过采样后,在空间上实现了离散化,并形成像素。但采样所得的像素值(即灰度值)依旧是连续量。采样后所得的各像素的灰度值从连续量到离散量的转换称为图像灰度的量化。
图像的量化比率决定了图像的颜色精细程度。
代码语言:javascript复制#!/usr/bin/env python# -*- coding:utf-8 -*-
from skimage import datafrom matplotlib import pyplot as pltfrom skimage.color import rgb2grayimport numpy as np
image = data.coffee()#grayimg = rgb2gray(image)print(image.shape)print(type(image))
ratio = 128ratio1 = 16ratio2 = 4cols=image.shape[0]rows=image.shape[1]chanals=image.shape[2]img1=np.zeros((cols,rows,chanals),dtype='int32')img2=np.zeros((cols,rows,chanals),dtype='int32')img3=np.zeros((cols,rows,chanals),dtype='int32')for i in range(cols): for j in range(rows): for k in range(chanals): img1[i,j,k]=int(image[i,j,k]/ratio)*ratio img2[i,j,k]=int(image[i,j,k]/ratio1)*ratio1 img3[i, j, k] = int(image[i, j, k] / ratio2) * ratio2img1 = rgb2gray(img1)img2 = rgb2gray(img2)img3 = rgb2gray(img3)plt.subplot(221),plt.imshow(image)plt.title('Input Image'), plt.xticks([]), plt.yticks([])plt.subplot(222),plt.imshow(img1,cmap='gray')plt.title('Binary image'), plt.xticks([]), plt.yticks([])plt.subplot(223),plt.imshow(img2,cmap='gray')plt.title('16 level'), plt.xticks([]), plt.yticks([])plt.subplot(224),plt.imshow(img3,cmap='gray')plt.title('64 level'), plt.xticks([]), plt.yticks([])plt.show()