数字图像处理概述及基础

1 数字图像处理概述及基础

书籍:《MATLAB图像处理 理论、算法与实例分析》;蔡利梅编著;清华大学出版社
个人学习笔记记录,欢迎交流批评。

1.1 图像与数字图像处理

1、图像:二维信号f(x,y),可用像素值矩阵表示。
2、视频:三维函数f(x,y,t),t为时间变量。(当时间间隔<=1/24s时,人眼不能感知出停顿)
3、数字图像处理主要内容:包括图像获取、图像变换、图像增强、图像平滑、边缘检测和图像锐化、图像复原、图像压缩编码、图像分割、图像描述和分析、图像匹配、图像融合、图像检索、图像水印、立体视觉、目标检测与跟踪。
Tips:机器视觉区别于计算机视觉,它还包含了成像、控制等技术。

1.2 颜色

1、颜色模型:
RGB模型:700nm红,546.1nm绿,435.8nm蓝
CMY/CMYK模型:Cyan青色、Magenta品红、Yellow黄色、Black黑色
HSI模型:Hue色调、Saturation饱和度、Intensity亮度
HSV模型:V明度
YIQ:Y亮度、IQ色调
YUV:Y亮度、UV色调
YCbCr模型:亮度、色调

1.3 数字图像的生成和表示

1、图像信号的数字化:经过采样、量化(到0-255)过程。
2、数字图像的类型:二值图像(黑白01)、灰度图像(0-255)、彩色图像(如RGB则为3个0-255矩阵)、动态图像(帧)、索引图像(实际是一种存储方式,存颜色索引值)
3、数字图像格式:JPEG有损压缩、GIF无损压缩、TIFF、PNG无损压缩位图图形、BMP位图。

1.4 图像的读取与显示

1、图像文件信息读取:

INFO = imfinfo('C:\Users\Administrator\Desktop\timg\flower.jpg')

在这里插入图片描述

% 创建一个图像信息工具
tinfo = imageinfo('C:\Users\Administrator\Desktop\timg\flower.jpg')

在这里插入图片描述

2、图像文件数据读取:

Image1 = imread('C:\Users\Administrator\Desktop\timg\flower.jpg');
imshow(Image1)
% 若读取索引图像:
% [X,MAP] = imread(Filename,FMT);
% X存放图像数据,MAP存颜色映射表

在这里插入图片描述
3、图像的显示:

imshow(Image1,[0 50])
imtool(Image1)
% 将矩阵中的数据显示为图像
image(Image1)
imagesc(Image1)
% 显示含有多帧的图像
montage(...)

4、像素信息获取与显示:

P = impixel(Image1)
% 弹出图像后,用鼠标选择像素点
% 创建像素信息工具
impixelinfo

5、局部区域的获取与显示(剪切):

%指定剪切矩形的左上角位置,宽,高
RECT = [100,100,200,200];
I2 = imcrop(Image1,RECT);
imshow(I2)

在这里插入图片描述
6、图像数据类型及转换:

% 将数据取值范围转换到[0,1]
I3 = im2double(Image1)
% im2uint8转换到[0,255]
%im2uint16转换到[0,65535]

在这里插入图片描述
但是imshow仍然显示与原图一样。

% 将数据强制转换为双精度型
I4 = double(Image1);

将矩阵转换为灰度图像

Matrix1 = Image1(:,:,1)  % 获得一个矩阵
I5 = mat2gray(Matrix1,[100,250]); %小于100则为0,大于250则为1.0
imshow(I5)

在这里插入图片描述

7、图像文件的保存:

% 图像,格式,位置等
imwrite(I5,'C:\Users\Administrator\Desktop\timg\flower5.bmp')

1.5 图像类型的转换

1、彩色图像转换为灰度图像:

I6 = rgb2gray(Image1);
imshow(I6)

在这里插入图片描述
** 2、多值图像转换为二值图像:**

I7 = im2bw(Image1,0.5);
imshow(I7)

在这里插入图片描述
3、灰度图像转换为彩色图像:
有密度分割法、灰度级变换法、热金属编码变换等
举例密度分割法(即将不同段的赋值不同的的颜色)(灰度变换法可以通过函数进行灰度转换,实现连续取值):

% I6为灰度图
r = I6; g = I6; b = I6; %初始化三个通道
r(I6 <= 50) = 0; r(20 < I6 & I6 <= 100) = 150; r(100 < I6 & I6 <= 200) = 200;  r(200 < I6 & I6 <= 255) = 250;
g(I6 <= 50) = 0; g(20 < I6 & I6 <= 100) = 50; g(100 < I6 & I6 <= 200) = 70;  g(200 < I6 & I6 <= 255) = 100;
b(I6 <= 50) = 0; b(20 < I6 & I6 <= 100) = 70; b(100 < I6 & I6 <= 200) = 100;  b(200 < I6 & I6 <= 255) = 150;
% 合成
I8 = cat(3,r,g,b);
imshow(I8);

在这里插入图片描述
** 4、索引图像的转换:**

[X1,MAP1] = rgb2ind(Image1,16);  % RGB转换为只有16种颜色的索引图像
I9 = ind2rgb(X1,MAP1);   % 反变换回RGB图像
imshow(I9);

在这里插入图片描述

[X2,MAP2] = gray2ind(I6,16);  % 将灰度图I6转换为16色索引图像
imshow(X2,MAP2)
I10 = ind2gray(X2,MAP2);
imshow(I10)

1.6 色彩空间的转换

1、RGB和HSV转换:

[X3,MAP3] = rgb2ind(Image1,256);
H = rgb2hsv(MAP3); % 将颜色映射表转换到HSV空间
H(:,3) = H(:,3)*1.5; H(H > 1) = 1;  % 将亮度增强为原来的1.5倍,,超出1则为1,否则超出范围
MAP4 = hsv2rgb(H);
imshow(X3,MAP4)

%同样:
H1 = rgb2hsv(Image1); % 将图像转换到HSV空间
H1(:,:,3) = H1(:,:,3)*1.5;
I11 = hsv2rgb(H1);
imshow(I11)

在这里插入图片描述
2、RGB和YCbCr转换:

rgb2ycbcr()
ycbcr2rgb()

3、RGB和YIQ转换:

rgb2ntsc()
ntsc2rgb()

4、RGB和LAB转换:

rgb2lab()
lab2rgb()

与1、同理,所以略写。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

weixin_47903162

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值