临安做企业网站,开了外网网站打不开,网站开发概要设计模板,访问国外的网站很慢目录
一#xff0c;数字图像的数值描述
#xff11;#xff0c;二值图像
#xff12;#xff0c;灰度图像
3#xff0c;彩色图像
二#xff0c;数字图像的灰度直方图 一#xff0c;数字图像的数值描述
在之前的学习中#xff0c;我知道了图像都是二维信息数字图像的数值描述
二值图像
灰度图像
3彩色图像
二数字图像的灰度直方图 一数字图像的数值描述
在之前的学习中我知道了图像都是二维信息可写成二维函数 是空间坐标。
像素值或称强度或 灰度幅值 。
经过之前的采样和量化之后图像的坐标 和幅值 均为有限 离散的数值。
因为矩阵是二维结构的数据同时量化值取整数使用round函数取整 因此一副数字图像可 以用一个整数矩阵来表示。矩阵的元素位置 就对应于数字图像上一个像素点的位置。矩阵 元素的值 即为对应像素点的像素值。
值得注意的是虽然矩阵是二维结构的数据可以用来描述图像但是矩阵中元素 的坐标含义为 行坐标。 列坐标。矩阵坐标系
在学习数字信号处理的时候一般将数字图像坐标系定义为矩阵坐标系即用矩阵坐标系来对像素 进行分析和处理。
在不同的场景中数字图像一般可以大致分为二值图像灰度图像彩色图像三类。
接下来分别学习它们的相关概念及数值描述 。
二值图像
每个像素非黑即白其灰度值没有中间过渡的图像就是二值图像。适合于文字信息图像的描述。
虽然二值图像对画面的细节信息描述的比较粗略但是对于一副一般的场景图像从画面上就已 经完全可以理解其基本内容。如下图 二值图像的矩阵取值只有两种具有数据量小的优点
黑 白 现在显示该二值图像矩阵的局部块一部分就可以直观的看到元素值只有和这两种取值
二值图像已经是离散的不需要进行量化处理。每个像素的值直接代表了它的状态黑或白。
灰度图像
灰度图像是指每个像素的信息由一个量化后的灰度级来描述的数字图像。不包含彩色信息。其中
灰度级图像中可用的不同灰度值的数量。例如在 8 位灰度图像中灰度级的范围是从 0 到 255总共有 256 个灰度级。虽然灰度级的概念看起来和之前学习的量化级别很像但灰 度级是量化结果的一种表现而量化级别是描述离散化过程的术语。
标准灰度图像中每个像素的灰度由一个字节表示一个字节位灰度级数为 级每个像素可以是从0~255黑到白之间的任何一个值。在后面的学习中默认灰度图像的灰度级数均为 256。如下是一张灰度图像并选取该图像矩阵中的局部快的矩阵信息 3彩色图像 彩色图像根据三原色成像原理来实现对自然界中的彩色描述。三原色成像原理认为自然界中的所有颜色都可以由红绿蓝RGB三原色组合而成。如果三种基色的灰度分别用一个字节8bit表示则三原色之间不同灰度组合可以形成不同的颜色。如下图是彩色插图的三原色通道分量图。可以看到左边红色分量图的灰度值最大所以彩色图像的画面呈暖色调。 oim imread(lena_color_256.tif); oim im2double(oim);
rc oim(:, :, 1);
gc oim(:, :, 2);
bc oim(:, :, 3);figure;
subplot(2, 2, 1);
imshow(oim);
title(原图像);subplot(2, 2, 2);
imshow(rc);
title(红色分量图);subplot(2, 2, 3);
imshow(gc);
title(绿色分量图);subplot(2, 2, 4);
imshow(bc);
title(蓝色分量图); 其中
使用 im2double 函数可以将图像转换为双精度类型以确保后续计算的准确性。 oim(:, :, x);通过索引访问图像矩阵的第三维度来提取红色、绿色和蓝色通道。 例如红色x1绿色x2蓝色x3。
二数字图像的灰度直方图
灰度直方图用于表示图像中各个灰度级别从黑到白的像素数量。灰度直方图可以帮助我们分析和理解图像的亮度分布、对比度以及图像的整体特征。其中
灰度级: 在灰度图像中每个像素的值表示其亮度通常范围从 0黑色到 255白色对于 8 位图像而言。这个范围可以根据图像的位深度而变化例如 16 位图像的灰度级范围是 0 到 65535。直方图: 灰度直方图是一个柱状图其中横轴表示灰度级纵轴表示对应灰度级的像素数量。每个柱子的高度表示图像中该灰度级的像素数。直方图可以用来分析图像的对比度、亮度和动态范围。例如直方图集中在左侧表示图像偏暗集中在右侧表示图像偏亮。
给出一道题。
设某个图像如下请计算该图像的灰度直方图
灰度级 34: 2个 灰度级 56: 1 个 灰度级 67: 5 个 灰度级 100: 6 个 灰度级 211: 2 个
使用二维坐标系绘制的灰度直方图如下
使用matlab绘制灰度直方图会更加方便如下获取一张彩色图像并绘制其灰度直方图
第一步读取图像 gim imread(lena_color_256.tif); 因为灰度直方图专用于灰度图像并用来显示灰度级的分布所以如果是彩色图像可以用size函数获取图像的颜色通道数颜色通道数为3就是彩色图像使用rgb2gray函数将彩色图像转换成灰度图像。 if size(gim, 3) 3 gim rgb2gray(gim); end
第二步使用unique函数获取灰度图像的唯一灰度值并使用histcounts函数统计每个灰度值的像素数量 grv unique(gim); pic histcounts(gim, 0:256);
第三步使用plot函数绘制二维图形由于在 matlab中数组索引是从 1 开始的而标准8位灰度图像的灰度值范围是从 0 到 255因此在绘制纵坐标的像素数量时需要将灰度值grv进行加1操作。 为了方便查看可以使用grid on语句添加网格线也可以不添加。 代码如下
gim imread(lena_color_256.tif);
if size(gim, 3) 3gim rgb2gray(gim);
endgrv unique(gim);
pic histcounts(gim, 0:256); figure;
plot(grv, pic(grv 1), LineWidth, 2);
xlabel(灰度值);
ylabel(像素个数);
title(灰度直方图);
grid on;有问题请在评论区留言或者是私信我回复时间不超过一天。