机器视觉#3 图像分类
(D(:,:,7)图像的行,列,7,实际上是一个三维的数据,此数据里存的值是颜色数,我们要显示灰度出来,还要给它一个color map,所以我们要用map去显示结果。size(128,128,27)就说明这个多帧图像里有27帧,每一帧是128*128.实际上是一个四维数据。map(89*3):是一个图像索引表,有89种颜色,每个颜色通过3个分量(R,G,B)来表示。BW黑白图像:0,1.·f表示图
一、数字图像基础:
第一部分:图像和数字图像
模拟图像:
图像是连续的,用函数f(x,y)表示图像:
·其中:x,y表示在空间坐标点的位置;
·f表示图像在点(x,y)的某种性质的数值,如亮度,灰度,色度等;
·f,x,y可以是任意实数。

数字图像:
I(r,c)是对f(x,y)的离散化后的结果。
·r表示图像的行(row);
·c表示图像的列(column);
·I表示离散后的f;
I,r,c的值只能是整数;

数字图像可用矩阵或数组进行描述。

(1)黑白图像
·每个像素只能是黑或者白,没有中间过渡,又称为二值图像。
·二值图像的像素值为0,1。


(2)灰度图像
·每个像素的信息由一个量化的灰度级来描述,没有彩色信息。
·灰度取值范围为(0~255),"0"表示纯黑色,"255"表示纯白色。
·中间的数字表示黑白之间的过渡色。



(3)彩色图像
·每个像素的信息由RGB三原色构成,其中RGB由不同灰度级描述。


假设3个分量分别用:n,m,k个二进位表示,则可表示为2^n+m+k种不同的颜色。


(4)索引图像



图像读取,显示和变换(Matlab)
l = imread('lenac.jpeg');
imshow(l)

彩色图像转为灰度图像
l = imread('lenac.jpeg')
G = rgb2gray(l);
imshow(G)

保存图像:
l = imread('lenac.jpeg')
G = rgb2gray(l);
imshow(G)
imwrite(G,'lenag.jpeg')

图像转为黑白图像:
l = imread('lenac.jpeg');
G = rgb2gray(l);
BW = im2bw(l); %彩色变黑白
BW = im2bw(G); %或者灰度变黑白
imwrite(BW,'lena_bw.jpeg');

BW与G大小相同,值的类型发生了变化,G灰度图像:是无符号8位整数。BW黑白图像:logical真或假 -->0,1。
多帧图像显示:
load mri %matlab自带

产生这样三个量: D(4维)。
map(89*3):是一个图像索引表,有89种颜色,每个颜色通过3个分量(R,G,B)来表示。
size(128,128,27)就说明这个多帧图像里有27帧,每一帧是128*128.实际上是一个四维数据。

(RGB分量是小数的原因:做了归一化处理)
我们若想得到此27帧数据中的第七张图片:
load mri
imshow(D(:,:,7),map)
(D(:,:,7)图像的行,列,7,实际上是一个三维的数据,此数据里存的值是颜色数,我们要显示灰度出来,还要给它一个color map,所以我们要用map去显示结果。
同一窗口显示所有图片:
load mri
figure,montage(D,map)
这样就可以显示所有27帧图片的效果。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)