图像采样、量化、编码(二十七)
采样;就是把一幅连续图像在空间上分割成M×N个网格,每个网格用一亮度值来表示。一个网格称为一个像素。M×N的取值满足采样定理。
量化;就是把采样点上对应的亮度连续变化区间转换为单个特定数码的过程。量化后,图像就被表示成一个整数矩阵。每个像素具有两个属性:位置和灰度。位置由行、列表示。灰度表示该像素位置上亮暗程度的整数。此数字矩阵M×N就作为计算机处理的对象了。灰度级一般为0-255(8bit量化)。
量化示意图(a)为量化过程(b)为量化为8bit
在现实生活中,采集到的图像都需要经过离散化变成数字图像后才能被计算机识别和处理。
二维图像的成像过程
采样又可分为均匀采样和非均匀采样。
图像均匀采样量化——像素灰度值在黑白范围较均匀分布的图像。
图像非均匀采样量化——对图像中像素灰度值频繁出现的灰度值范围,量化间隔取小一些,而对那些像素灰度值极少出现的范围,则量化间隔取大一些。
编程处理
用MATLAB对图像进行采样处理
1 %2.1图像的采样处理2 f1=imread('C:\Users\Administrator\Desktop\lenagray.jpg');3 figure(1);4 subplot(2,2,1);5 imshow(f1)6 title('512*512')7 f2=f1(1:2:end,1:2:end);%每2位采集1位8 subplot(2,2,2)9 imshow(f2) 10 title('256*256') 11 f3=f1(1:4:end,1:4:end);%每4位采集1位 12 subplot(2,2,3) 13 imshow(f3) 14 title('128*128') 15 f4=f1(1:8:end,1:8:end);%每8位采集1位 16 subplot(2,2,4) 17 imshow(f4) 18 title('64*64')
结果截图
用MATLAB对图像进行量化处理
%2.2图像量化 figure(2); f64=histeq(f1,64);%将图像的灰度级数改为64 subplot(2,2,1); imshow(f64) title('64*64') f32=histeq(f2,32);%将图像的灰度级数改为32 subplot(2,2,2); imshow(f32) title('32*32') f16=histeq(f3,16);%将图像的灰度级数改为16 subplot(2,2,3); imshow(f16) title('16*16') f8=histeq(f4,8);%将图像的灰度级数改为8 subplot(2,2,4); imshow(f8) title('8*8')
结果截图
*************************************************************************************
简单理解图像采样、量化、编码
一般的,将连续的模拟信号放置在 (x,y) 直角坐标系中,x 轴表示时间,y 轴表示信号的幅度。
1.采样
即是在时间轴上,也就是 x 轴上,抽出 X 个点。比如说采样率,就反映了在一秒钟的刻度上,均匀的抽取多少个点。也就是,采样率是针对 x 轴,针对时间的。
2.量化
即是在幅度轴上,也就是 y 轴上,按特定的单位长度,量取 Y 个这样的长度。比如说,规定 2 毫米为一个单位长度,按照这样的单位长度,我们可以在 y 轴上,从 y = 0 开始,依次量取 Y 个这样的长度,如果信号最高点超出了这个 (Y x 2毫米)的 范围,就丢掉,或者使用算法,叠加到小于等于(Y x 2毫米)的范围。一般的,这个 Y 的值(注意,不是 Y x 2毫米),常取用 8/16/32/256 这些值,个人理解上,这就是我们常说的位深度,比如位深度为8,位深度为256等等。简而言之,量化和位深度可以粗暴的认为,就是一个人的本名和别名,故人的字、名、号。
进一步理解量化:可以想象成,在 (x,y)坐标系,x轴上,有 X 根线; y轴上有 Y 根线,则整个坐标系就变成了一页小学生的方格作文本纸面。沿着 y 轴从0开始数,最多数256个方格,就表示当前位深度为 256。
(还有一种理解方法,比如规定信号最大幅度,在y轴上不超100毫米,然后把这100毫米等分,比如等分成8份,或者16份,或者32份,或者256份,划分的等份越多,就量化的越细。比如拿颜色来说,所谓的位深度越高,则存储的颜色变量就越多,就是这么个道理)
3.编码
则就是在量化的基础上,x 轴上的每个抽取点,对应的 y 值是多少。如果位深度为 256,则 y 值最大不超过 256.
当然,以上纯属粗暴、简单的理解,只是一个理解上的方便法门。实际应用中的采样、量化、编码会因为实际需要,搞的非常复杂,尤其是在编码阶段,会使用各种算法来进行编码。相关术语,也是非常的专业、准确。
*************************************************************************************
图像采样、量化、编码(二十七)相关推荐
- [Python从零到壹] 四十一.图像处理基础篇之图像采样处理
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- matlab 图像像素量化,(最新整理)图像采样和量化
<(最新整理)图像采样和量化>由会员分享,可在线阅读,更多相关<(最新整理)图像采样和量化(5页珍藏版)>请在人人文库网上搜索. 1.完整)图像采样和量化(完整)图像采样和量化 ...
- 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云 邮箱: happylifemxy@163.com 期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十七:TFT模块 - 显示
实验二十七:TFT模块 - 显示 所谓TFT(Thin Film Transistor)就是众多LCD当中,其中一种支持颜色的LCD,相较古老的点阵LCD(12864笑),它可谓高级了.黑金的TFT ...
- 论文解读二十七:文本行识别模型的再思考
摘要:本文研究了两个解码器(CTC[1]和 Transformer[2])和三个编码器模块(双向LSTM[3].Self-Attention[4]和GRCL[5]),通过大量实验在广泛使用的场景和手写 ...
- 特殊图像的色彩特征工程:非自然图像的颜色编码
来源:DeepHub IMBA 本文共7500字,建议阅读15+分钟我们将探讨特征工程的不同方式如何有助于提高卷积神经网络的分类性能. 并非所有彩色的图像都应该是彩色的,或者换句话说并非所有使用 RG ...
- Bootstrap基础二十七 多媒体对象(Media Object)
Bootstrap<基础二十七> 多媒体对象(Media Object) 原文:Bootstrap<基础二十七> 多媒体对象(Media Object) Bootstrap 中 ...
- OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope
OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...
- Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持.MAC泛洪)及数据流追踪和图像抓取(二) 2019年09月22日 21:55:44 Eastmount 阅读数 3515 文章标签: ...
最新文章
- 运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)
- 皮一皮:21世纪了还有这样的事情?
- hdu 4493 Tutor 水题
- Linux查看磁盘目录内存空间使用情况
- crontab没有正确重定向导致磁盘inode节点空间满
- 用windows api 计算文件的md5值
- 全面战争:战锤II-概念艺术设计
- 【mysql快速入门】牛客网:查询所有列查询多列查询结果去重查询结构返回限制行数将查询后的列重新命名
- 感悟 | 一个 33 岁老程序员的自白:因为那时候我还不懂得…
- 判断浏览器内核是否是IE8及其以下
- 3D机器视觉技术您了解多少?
- 性能测试工具iPerf和Netperf使用介绍
- 视频矩阵的作用及原理
- 北航软件工程硕士_21考研择校 | 北京航空航天大学软件工程怎么样?
- 简述python模块
- case when 嵌套
- 《ECMAScript 6 入门教程》学习笔记Ⅰ
- 进度和质量哪个重要?这个梗工作中反反复复!
- Java怎么顺序 或 逆序排序数组
- geoip 注册_【注册】饲料添加剂巴基斯坦注册简介
热门文章
- 从DCF到DCX:构想照进现实
- Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]
- 《Python机器学习——预测分析核心算法》——2.2 分类问题:用声纳发现未爆炸的水雷...
- Swap in C C++ C# Java
- 安卓应用_接入 微信支付 无法调起支付界面的坑
- VS2008环境下开发的某些程序在其他机器运行提示“由于应用程序配置不正确,应用程序未能启动”的问题(IIS)...
- 【现代机器人学】名词概念的理解
- 在Idea中为项目添加Tomcat配置
- vue实现增删改查功能
- 【[POI2012]PRE-Prefixuffix】