数字图像处理概述及基础
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、同理,所以略写。
数字图像处理概述及基础相关推荐
- 数字图像处理之图像基础
最近在学数字图像处理,图像基础包括以下部分: 导入库 import numpy as np import matplotlib.pyplot as plt import cv2 as cv 图片展示函 ...
- 视频教程-数字图像处理实战-算法基础
数字图像处理实战 河海大学计算机硕士毕业,现就职于南京华为研究所,从事嵌入式软件开发工作.热爱模式识别及机器学习算法. 金圣韬 ¥70.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+ ...
- 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...
<数字图像处理(实验部分)>教案 实验一:数字图像处理中MATLAB使用基础实验 一. MATLAB软件安装 二. 进入MATLAB运行环境 三. MATLAB编程基础 3.1.变量 预定 ...
- MOOC网神经网络与深度学习TensorFlow实践3——数字图像处理、TensorFlow基础
数字图像处理 数字图像基本概念 pillow图像处理库 手写数字数据集MNIST TensorFlow基础 TensorFlow2.0特性 创建张量 维度变换 部分采样 张量运算
- 第2章 Python 数字图像处理(DIP) --数字图像基础5 -- 算术运算、集合、几何变换、傅里叶变换等
目录 数字图像处理所有的基本数字工具介绍 算术运算 集合运算和逻辑运算 空间运算 向量与矩阵运算 图像变换 图像和随机变量 数字图像处理所有的基本数字工具介绍 算术运算 # 相加 img_ori = ...
- 第10章 Python 数字图像处理(DIP) - 图像分割 基础知识 标准差分割法
This Chapter is all about image segmentation. I still not finished whole chapter, but here try to pu ...
- 第2章 Python 数字图像处理(DIP) --数字图像基础1 - 视觉感知要素 - 亮度适应与辨别
数字图像基础1 视觉感知要素 亮度适应与辨别 import sys import numpy as np import cv2 import matplotlib import matplotlib. ...
- 数字图像处理——频域滤波基础
频域滤波基础 1.频域滤波与空域滤波的关系 傅立叶变换可以将图像从空域变换到频域,而傅立叶反变换则可以将图像的频谱逆变换为空域图像.这样一来,我们可以利用空域图像与频域之间的对应关系,尝试将空域卷积滤 ...
- 第2章 Python 数字图像处理(DIP) --数字图像基础4 -- 像素间的一些基本关系 - 邻域 - 距离测试
目录 像素间的一些基本关系 像素的相信像素 距离测试 import sys import numpy as np import cv2 import matplotlib import matplot ...
最新文章
- linux tty core code,linux tty core 源码分析(5)
- 分布式系统设计原理与方案
- 关于浮点数在计算机内存中的存储
- MYSQL的replace into
- linux tomcat PermGen space
- javascript无限请求_JAVASCRIPT事件循环
- 分析ARP***与欺骗
- 关于div布局中float的使用
- mongodb执行sql脚本文件
- 电池管理系统(BMS)
- js内置对象方法笔记
- 安装Kubuntu至U盘
- 华东师大计算机专业非全日制,2018年华东师范大学非全日制研究生专业目录
- windows端口配置
- 私域运营第五讲:实体餐饮店如何通过搭建私域流量实现营收增长
- vue3 + vite + ts + setup , 第四练 异步组件的使用,defineAsyncComponent和Suspense的使用
- [汇编题]将ax中的16位数分成四组,每组四位,分别放入al,bl,cl,dl中
- Magnifier笔记
- 程序员的7个被动收入途径——我如何每月赚 5万
- 基于深度学习的身份证号码识别(OCR,Opencv,Pytorch)