当前位置 博文首页 > 老猿Python:《数字图像处理》学习感悟:第二章数字图像基础(3)
本系列文章记录老猿自学冈萨雷斯《数字图像处理》的感悟和总结,不过估计更新会比较慢,白天要工作,都是晚上抽空学习,学习完一章再回头总结,想学的朋友可以自己下载英文原版(目前到第四版)和中文译本(目前应该到第三版)的电子版观看,如果想对照观看建议英文原版也找第三版。
这本《数字图像处理》不愧为数字图像处理的经典教程,知识范围广、内容详尽、案例贴近实践,至少很合老猿的口味。但中译本存在两个问题:
空间分辨率(spatial resolution)是图像中可辨别最小细节的度量(smallest discernible detail)。空间分辨率的定量表述上有多种方法,其中每单位距离线对数(line pairs per unit distance)和每单位距离像素点数(dots (pixels) per unit distance)是最常用的表示方法。
线对数是假设交替地用黑竖线和白竖线来构造一幅图表(chart),线宽为w(w可以小于1),线对(line pair)的宽度就是2w,每单位距离有1/2w个线对。广泛使用的图像分辨率(image resolution)的定义是最大的每单位距离可分辨线对数量(discernible line pairs per unit distance)。
每单位距离点数是印刷出版业常用的图像的分辨率,在美国通常使用每英寸点数(dots per inch ,dpi)来度量。
灰度分辨率(Intensity Resolution)是指在灰度级中可分辨的最小变化(smallest discernible change in intensity level)。不像空间分辨率必须以每单位距离为基础,灰度分辨率指的是用于量化灰度(quantize intensity)的比特数,如被量化为256级的图像有8比特的灰度分辨率。
当灰度分辨率过小时,容易在数字图像灰度平滑区域中造成伪轮廓(False Contouring)。伪轮廓属于数字图像噪声中的一种,主要表现为在数字图像或者视频信号中所呈现的画面平场区域出现明显的类似于等高线的不连续过渡带,从而对于画面感观质量造成影响的现象。如下2图:
伪轮廓一般出现在灰度级16(4比特灰度分辨率)或更小的灰度级的图像中。
假设对于一幅正方形图像,其边长取样数为N,幅度量化级数为2k。以N和K构造的平面中,改变N和K的取值,对不同的图像人们的感知会不一样。实验表明,对于有大量细节(a large amount of detail)的图像(如聚集的人群),可能只需要很少灰度级(a few intensity levels)就能得到和更多的灰度级数一样的感知效果。
插值是用已知数据计算未知位置数据的处理,图像插值在图像缩放、旋转和几何校正等任务中广泛应用。图像插值有近邻插值法(nearest neighbor interpolation)、双线性插值法(bilinear interpolation)、双三次插值法(bicubic interpolation)等。
三种插值方法中,近邻插值法简单但容易导致图像边缘失真,双线性插值比近邻插值法效果好很多但计算量大增,双三次插值法在保持细节方面比双线性插值效果更好一些,因此是商业图像处理软件的标准插值方法。具体相关方法详细介绍可以参考《OpenCV-Python图像处理:插值方法及使用resize函数进行图像缩放 https://blog.csdn.net/LaoYuanPython/article/details/111771138》一文及引用博文的介绍。
本节介绍了数字图像采样和量化的相关概念,采样就是对数字图像表示的空间坐标进行离散化设置,量化就是对图像的强度值(灰度值)的表示进行数字化表示,二者的单位决定了图像的精度,图像的分辨率就是基于二者来决定的。
图像插值是在图像进行仿射变换和投影变换时根据已知的输入图像像素坐标及灰度值计算目标图像像素坐标及灰度值的计算方法。
本节学习时最纠结的是intensity的翻译,在《图像灰度与灰阶的纠结:gray level/scale译文释义 https://blog.csdn.net/LaoYuanPython/article/details/116545233》的介绍中,将gray level翻译为灰阶或灰度级,而gray scale翻译为灰度,而intensity表示的含义与gray level相同,按理应该翻译为灰阶或灰度级,但用起来感觉不是很顺口,后面还出现了“intensity level”更不知道怎么翻译了,所以最后还是妥协翻译成了“灰度”。
更多图像处理请参考专栏《OpenCV-Python图形图像处理》及《图像处理基础知识》的介绍。
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。在这里插入图片描述
如对文章内容存在疑问,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询。