数字图像处理之图像采样 理论+实验

您所在的位置:网站首页 间隔怎么理解 数字图像处理之图像采样 理论+实验

数字图像处理之图像采样 理论+实验

2023-08-27 02:19| 来源: 网络整理| 查看: 265

图像采样

前言:我们知道 将模拟图像转换为数字图像,需要两个基本操作:采样和量化。

我们通过以下几个问题去了解图像采样。

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