数字图像处理的基本概念_数字图像处理有什么用

数字图像处理的基本概念_数字图像处理有什么用数字图像基本概念与彩色图像,(可以用来应付期末考)

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

数字图像处理(1)—— 数字图像基本概念与彩色图像

1 数字图像处理的起源发展与基本概念

1.1 基本概念

人类所接受的信息中,视觉信息占比大于60%,听觉信息占20%,其余信息占比小于20%,所以真的“百闻不如一见”!一般将视觉信息称为图像信息,其特点是直观形象,易懂,信息量大。

1.1.1 图像

广义上,图像就是所有具有视觉效果的画面,它包括:纸介质上的、底片或照片上的、电视、投影仪或计算机屏幕上的。具体分为模拟图像和数字图像。

模拟图像可用连续函数来描述,即 I = F ( x , y ) I=F(x,y) I=F(x,y).其中x,y是空间平面坐标。其特点为关照位置和关照强度均为连续变化的。

数字图像是空间坐标和灰度(亮度)均用离散的数字(一般是整数)表示的图像。基本元素称为像素(Pixel)。转换到数学上就是可用矩阵或数组来描述,即 I = f ( x , y ) = ∣ i i j ∣ M × N I=f(x,y)=\begin{vmatrix}i_{ij}\end{vmatrix}_{M\times N} I=f(x,y)=iijM×N像素或像元的属性:空间位置和灰度。

1.1.2 图像处理(image processing)

对图像信息进行加工处理和分析,以满足人的视觉心理需要和实际应用或某种目的(如压缩编码或机器识别)的要求。数字图像处理:即利用计算机对数字图像进行处理。优点:精度高、再现性好、方法易变、灵活度高。缺点:处理速度受到计算机和数字器件的限制,一般也是串行处理,因此处理速度较慢。

图像处理可分为三个层次。第一层次为低级处理,如图像缩放,平滑,是对图像进行加工改善,为图像分析作准备。第二层次为中级处理(图像分析),如图像分割,边缘检测,目的是获取客观特征。第三层是高级处理(图像理解),如无人驾驶等可以理解图像意思,用于研究图像中各目标的性质和相互关系。

1.2 起源与发展

百度一下你就知道嘿嘿。

2 数字图像数字化

大多数传感器的输出是连续电压波形,为了产生一副数字图像需要把连续的感知数据转化为数字形式,这包括两种处理:取样和量化。(严格来说应该是取样,量化,编码三种处理)

(1)取样:图像空间坐标值的数字化

空间坐标(x,y)的数字化被称为图像采样,确定水平和垂直方向上的像素个数N、M。一般我们所形容的 512 × 512 512\times512 512×512或者 1024 × 1024 1024\times1024 1024×1024就是水平个垂直方向上的像素个数。

(2)量化:图像函数值(灰度值)的数字化

函数取值的数字化,如量化到256( 2 8 2^8 28)个灰度级。灰度级都是2的次幂。所以整合起来形容一副图像的数字化规格可以写为 512 × 512 , 256 512\times512,256 512×512,256

(3)编码:压缩信息量

同时,为了应对某些图像为了突出其中特殊信息,也可以采用非统一的图像采样和量化,使个别区域变尖锐或平滑。

补充:存储一副 M × N , 2 k M\times N,2^k M×N,2k的灰度图像需要 M × N × K M\times N\times K M×N×K(Bit)或 M × N M\times N M×N(Byte)

3 数字图像的空间和灰度分辨率

(1)空间分辨率(spatial resolution)

图像中可分辨的最小细节,主要由采样间隔值决定,采样间隔值越小,空间分辨率越高,质量越好。反之则会出现棋盘格现象(灰度级不变)。

在这里插入图片描述

(2)灰度分辨率

灰度级别中可辨别的最小变化,通常也把灰度级L称为灰度分辨率。量化级数越多,灰度分辨率越高,质量越好。反之则会出现伪轮廓现象。

在这里插入图片描述
小结:

◆图像的分辨率表示的是能看到图像细节的多少,显然依赖于M×N和L

◆保持M×N不变而减少L,则会导致假轮廓

◆保持L不变而减少M×N,则会导致棋盘状

◆图像质量一般随着M×N和L的增加而增加,但存储量增大

◆实验表明图像的细节越多,用保持M×N恒定而增加L的方法来提高图像的显示效果就越不明显,因此,对于有大量细节的图像只需要少数的灰度级。

4 数字图像类型与彩色空间

4.1 图像类型

灰度图像: 图像只有明暗程度的变化而没有色彩的变化,简单的是二值图像,只有两种灰度。

伪彩色图像:是指经过伪彩色处理而形成的彩色图像。像素值是所谓的索引值,是按照灰度值进行彩色指定的结果,其色彩并不一定忠实于外界景物的真实色彩。(单波段图像)

假彩色图像:一般指遥感多波段图像合成的彩色图像。(其他波段组成的三通道)

真彩色图像:忠实于外界景色的色彩的图像,其像素一般是颜色的真实值。(RGB三通道直接决定)

静止图像:图像的内容不随时间变化。

活动图像:前一帧和后一帧的图像内容随时间发生变化。

4.2 彩色空间

彩色空间(也称彩色模型或彩色系统)

彩色模型是指建立一个3D坐标系统,其中每个空间点都代表某一种颜色,常见的模型:RGB、HSI、HSV、LAB、CMY和CMYK、YIQ、YUV、YCbCr。主要介绍RGB和HSI两种彩色空间。

(1)RGB

CCD技术直接感知R,G,B三个分量,是图像成像、显示、打印等设备的基础。

CIE规定了以700nm(红)、545.1nm (绿)、435.8nm (蓝)三个色光为三基色。又称为物理三基色。RGB模型是目前常用的一种彩色信息表达方式,它使用红、绿、蓝三原色的亮度来定量表示颜色。该模型也称为加色混色模型,是以RGB三色光相互叠加来实现混色的方法,因而适合于显示器等发光体的显示。

考虑RGB图像,其中每一幅红、绿、蓝图像都是一幅8bit图像,在这种条件下,每一个RGB彩色像素有24bit深度(3个图像平面乘以每平面比特数,即3×8)。24bit的彩色图像也称全彩色图像。在24bitRGB图像中颜色总数是224=16777216。

:32位真彩色,不是2^32种颜色!而是24位真彩色(1600万色)加上8位的透明度,让显示更好,更接近自然的色彩。

(2)HSI

色调(hue)又称为色相,是当人眼看到一种或多种波长的光时所产生的彩色感觉,它反映颜色的种类。

饱和度(saturation)是指颜色的纯度,可用来区别颜色的深浅程度。混入的白光越少,饱和度越高,颜色越鲜明。

亮度(intensity)是视觉系统对可见物体辐射或者发光多少的感知属性。

HSI两个特点: 一是I分量与图像的彩色信息无关,二是H和S分量与人感受颜色的方式是紧密相连的。

HSI将亮度(I)与色调(H)和饱和度(S)分开,避免颜色收到光照明暗(I)等条件的干扰,仅仅分析反映色彩本质的色调和饱和度。其广泛用于计算机视觉、图像检索和视频检索。这种彩色系统格式的设计反映了人类观察彩色的方式,如:红色又分为浅红和深红色等等。

5 Matlab命令

所使用Matlab中Image Processing Toolbox。

Matlab和IPT支持的数据类型

名称 描述
double 双精度浮点数, 范围为[-10308 ,10308]
uint8 无符号 8 比特整数, 范围为[0, 255]
uint16 无符号 16 比特整数,范围为[0, 65536]
uint32 无符号 32 比特整数,范围为[0, 4294967295]
int8 有符号 8 比特整数, 范围为[-128 ,127]
int16 有符号 16 比特整数,范围为[-32768, 32767]
int32 有符号 32 比特整数,范围为[-2147483648 ,2147483647]
single 单精度浮点数, 范围为[-10308 ,10308]
char 字符
logical 0或1

Matlab格式转换函数

名称 将输入转化为 有效的输入图像数据类
im2uint8 uint8 logical,uint8,uint16 和 doulbe
im2uint16 uint16 logical,uint8,uint16 和 doulbe
mat2gray double,范围为[0 1] double
im2double double logical,uint8,uint16 和 doulbe
im2bw logical uint8,uint16 和 double

Matlab图像基本处理函数

函数类型 参数说明 作用
A = imread(filename) filename – Name of graphics file(character vector |string scalar)
A – Image data(array|matrix)
读取
imshow(I) I – Input grayscale image(matrix) 输出
whos 大小与类型
info = imfinfo(filename) info – Information about graphics file(structure array) 图像信息
imwrite(A,filename,fmt) fmt – Format of output file( ‘bmp’ |’gif’|’hdf’|’jpg’|’jp2’) 类型改写与压缩
BW = im2bw(I,level) I – 2-D grayscale image(m-by-n numeric matrix)
level – Luminance threshold(0.5默认值|number in the range[0,1])
BW – Binary image(m-by-n logical matrix)
灰度图像二值化
BW=imbinarize(I,method) I – Input image(2-D grayscale image | 3-D grayscale volume)
method – Method used to binarize image(‘global’ 默认值|’adaptive’)
灰度二维图像二值化或三维图像阈值化
newmap = rgb2gray(map) map – Colormap(c-by-3 numeric matrix) 彩色图像转灰度图像

实际应用

L = imread('lenna.jpg');
whos('L')
infor = imfinfo('lenna.jpg')
%BWL = im2bw(L)
Graylenna = rgb2gray(L);       %灰度图
BWL = imbinarize(Graylenna);   %二值图像
subplot(1,3,1),imshow(L);
subplot(1,3,2),imshow(Graylenna);
subplot(1,3,3),imshow(BWL);
imwrite(L,'lenna.bmp','bmp');  %存储为bmp格式

6 嘘,题目

1. 一副256*256的灰度图像,若灰度级数为256,则储存他所需要的比特数是( )。
答: 256 × 256 × 8 256\times 256\times 8 256×256×8(bit) or 256 × 256 × 8 ÷ 1024 256\times 256\times 8\div 1024 256×256×8÷1024(K)
2. 图像的空间分辨率是指( )。
答:单位尺寸上采样的像素数
3. 图像数字化包括那些过程?它们对数字化图像质量有何影响?
答:采样与量化。采样间隔值越小,空间分辨率越高,质量越好;量化级数越多,灰度分辨率越高,质量越好
4. HSI表色系的三属性包括( )
答:色调,饱和度,亮度
5. 哪个彩色空间最接近人视觉系统特点( )
答:HSI空间

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186063.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SSTI完全学习[通俗易懂]

    一、什么是SSTISSTI就是服务器端模板注入(Server-SideTemplateInjection),也给出了一个注入的概念。常见的注入有:SQL注入,XSS注入,XPATH注入,XML注入,代码注入,命令注入等等。sql注入已经出世很多年了,对于sql注入的概念和原理很多人应该是相当清楚了,SSTI也是注入类的漏洞,其成因其实是可以类比于sql注入的。sql注入是从用户获…

  • Python绘图Turtle库详解[通俗易懂]

    Python绘图Turtle库详解[通俗易懂]Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。turtle绘图的基础知识:1.画布(canvas)画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。…

  • 排名前三的python 开源 IDE

    Python无处不在,似乎它支持从主要网站到桌面实用程序到企业软件的所有功能。Python已经被用来编写流行的软件项目,如dnf/yum,OpenStack,OpenShot,Blender,Calibre,甚至是原始的BitTorrent客户端。它也恰好是我最喜欢的编程语言之一。就个人而言,Python多年来一直是我从大学课程到小脚本的一切课程,帮助我自动执行重复的任务。它是少数…

  • Java中动态代理的两种方式JDK动态代理和cglib动态代理以及区别

    Java中动态代理的两种方式JDK动态代理和cglib动态代理以及区别上篇介绍了一下静态代理:Java中的代理模式——静态代理以及分析静态代理的缺点也分析了一下静态代理的缺点:1、由于静态代理中的代理类是针对某一个类去做代理的,那么假设一个系统中有100个Service,则需要创建100个代理类2、如果一个Service中有很多方法需要事务(增强动作),发现代理对象的方法中还是有很多重复的代码3、由第一点和第二点可以得出:静态代理的重用性不强那怎…

  • python如何读取sql文件_sql数据库常用命令

    python如何读取sql文件_sql数据库常用命令基本思路:①读sql文件,整理出sql语句;②执行sql语句。简单代码如下:#db_cursor→由db_cursor()创建,sql_file→sql文件defread_SQL(self,db_cursor,sql_file):#打开文件fpfp=open(sql_file,encoding=’utf8′)#读文件file=fp.readlines()#sql语句集合(

  • Linux杀死进程命令:kill、killall、pkill

    Linux杀死进程命令:kill、killall、pkillkill命令:   1.格式:kill[信号]进程id   2..查看经常信号:kill-l   3.常用命令:          平滑重启进程:kill-1进程id          强制杀死进程:kill-9进程id#查看进程可用psaux命令killall命令:   1.格式:killall[信…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号