数字图像处理之图像采样 理论+实验 |
您所在的位置:网站首页 › 间隔怎么理解 › 数字图像处理之图像采样 理论+实验 |
图像采样 前言:我们知道 将模拟图像转换为数字图像,需要两个基本操作:采样和量化。 我们通过以下几个问题去了解图像采样。 1.图像采样做的什么?(is) 图像采样将一幅在空间连续分布的模拟图像分割成M*N的网格,,每个网格就是一个pixel,M*N就是该图像的分辨率。 采样就是对图像空间坐标的离散化。 {说白了:图像采样就是对原始图像信号的一种数字化逼近。 } 2. 图像采样后,输出的是什么? 输出的就是一个数字图像(模拟图像分割成一个个的图像块组成的图像) 3.怎么进行采样呢?(how) 两步:(1)沿垂直方向按一定间隔从上到下顺序地沿水平线方向直线扫描,得到各水平线上灰度值的一纬扫描(估计就是一个连续的函数图像)。 (2)再对以为扫描信号按一定间隔采样得到离散信号。 即先垂直方向采样,再沿水平方向采样。 4.采样间隔影响什么?采样间隔如何选取? 一般而言,采样间隔越大,pixel数量越少,空间分辨率越低,质量越差。 根据香农采样定理,只要采样频率大于被采样信号最高频率的2倍,就可以由采样信号对原始信号的行态进行完整恢复。 5.采样方式 采样方式有两种:均匀采样 和 不均匀采样 均匀采样就是将图像均匀的分成m*n个,对每个图像块使用采样函数。 非均匀采样根据图像局部信息动态的改变采样间隔。 6.模拟图像采样的实验。 这个实验就是对一张400 *600的图像,采取20的采样间隔进行采样。 模拟图像不就是 无穷*无穷的图像吗? from matplotlib import pyplot as plt from skimage import data import numpy as np #导入图像 image=data.coffee() #显示图像的大小,输出一个元组,分别表示图像的横向长,纵向长和通道数 #此处通道数是3,也就是RGB格式 print(image.shape) print(type(image)) #设置采样比率 ratio=20 #设置采样后图像的大小,第一个参数是shape就是表示大小的三维元组 #原来图像是600 * 400,现在变成了30 *20 只有600个像素点了 image1=np.zeros((int(image.shape[0]/ratio),int(image.shape[1]/ratio),image.shape[2]),dtype='int32') #进行采样 for i in range(image1.shape[0]): for j in range(image1.shape[1]): for k in range(image1.shape[2]): #获取需要采样的图像快,i代表图像的横坐标,y代表图像的纵坐标 #k代表通道,输出的是该坐标第k通道的像素值。 #输出的是该坐标处第k通道的像素值(RGB值),一个20*20的矩阵 #矩阵的每个值代表原图像该像素点的RGB值 delta=image[i*ratio:(i+1)*ratio,j*ratio:(j+1)*ratio,k] #mean()方法不设置值,对delta矩阵求平均值,返回一个实数 #并将这个值存入结果图 image1[i,j,k]=np.mean(delta) #打印采样后的图像 plt.imshow(image1) plt.show()结果: 7.我的思考 自然界或是传感器传来的模拟图像是连续的,计算机处理不了,所以要转化成离散的。 连续的模拟图像可以近似的看成是 无穷*无穷的数字图像,而图像采样要做的就是,将这样一幅连续的图像切割成一个个小块(就像一块披萨,我们横切三刀,竖切三刀,切成9块小披萨),每个小块都是一幅缩小的模拟图像,这个小模拟图像的像素值还是连续的,再通过图像量化把连续的像素值也变成离散的,那么这个图像就是计算机可以处理的了。 不断的缩小间隔细分图像,直至分辨率达到人眼的辨识率即可。 note:刚刚接触数字图像处理,如有不足,请多见谅。 参考:《数字图像处理与python实现》 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |