采样 & 量化
采样
针对坐标轴,成像技术,空间分辨率
量化
针对函数值,模拟图像(线性),转换数字图像(非线性),灰度分辨率
bitmap 位映射 位图存储
每个点,有位置和颜色信息
vector 向量处理,矢量存储
只存储图像内容的轮廓,位置,曲线,颜色
位 & 颜色
高彩色 16位
真彩色(效果更好)24位
matlab常用图片格式
jpeg,png,gif,BMP,PCX,TIFF
bmp 文件格式
位图文件头
信息头
调色板
(上面三个是图像信息)
位图数据
(处理数据用到的部分)
matlab三种存储格式
无符号整数8位
uint8 范围:0-255
无符号整数16位
uint16
双精度
double 范围:0-1
遇到负数取0或绝对值
二值图像
能用8位和双精度
不能用16位
灰度图像
m x n
索引图像
m x n
8 16 位 下标0开始
双精度(带小数位.000000~的整数)下标1开始
两种坐标表示产生偏差
像素值作为rgb调色板下标
rgb图像
m x n x 3 矩阵
相当于3页纸,分别记录红绿蓝
24位,红绿蓝各占8位
matlab操作
示例图(可用相对路径读取)
根目录 toolbox/images/imdata
显示图像信息
imfinfo()
传入文件的相对路径或绝对路径
im-image f-file info-information
调用后注意控制台打印的ColorType信息
ColorType
indexed 索引图[x,map]
truecolor rgb图
grayscale 灰度图 字母I表示
grayscale (灰度只有0和1)/logical二值图 Bw表示
图像显示
imread() 读取文件
figure() 创建图形窗口
imshow() 显示图像
imtool() 显示图像加一些工具
subimage() 早年代替imshow使用(早年imshow有bug,现已修复),自动转真彩
colorbar 显示色条
灰度范围
设置显示灰度范围为64-128
imshow(I,[64,128])
如果uint8()函数显示出问题,就在imshow加空矩阵imshow(I,[])
用im2uint8()就可以省略空矩阵
多帧图(略)
保存+转换类型
imwrite(x,'name.jpg','JPG')
imwirte(x,map,'name.jpg','JPG')
保存到代码同目录
im2bw(i,level)
level默认0.5
imbinarize 灰度图和三维图,目前不完善
图像算数运算
点运算
输入输出都是图像
像素点的灰度值由输入像素点的值决定
灰度变换
线性点运算
f(r)=ar+b
压缩变灰,拉伸变亮
matlab 操作
.* 数组乘法
./ 数组除法
图像类型要一致
数据类型要一致
才能运算
通常用double类型运算,不然会丢失小数
im2double()
加法运算
imadd
降低加性随机噪声
去除高斯白噪声
叠加平均法
% 代码待补充
加法运算
加一个常数图像会变亮
减法运算
差影法
应用:动态监测,运动目标,跟踪,图像背景消除,目标识别
梯度幅度
获取轮廓:和右边+上边像素想减,取绝对值后比较最大值
乘法运算
做图像掩膜操作
等比例变亮
除法
待补充
图像增强
灰度直方图
统计同色像素点个数
figure()
imhist(i)
灰度变换增强
使对比度扩展,图像清晰,特征明显
线性回复变换
输入的灰度范围从直方图得到
输出自己定
线性需要写循环处理每个像素
非线性不用
非线性变换
i转double
对数
g=log(i+1)
指数
g=0.7^i-1
幂次
s=i^γ
γ<1变亮
γ>1变亮
对比度增强函数
imadjust(I,[lowin,highin],[lowout,highout],r)
输入0.1-0.3
输出0-1
小于0.1变0
大于0.3变1
之间没处理,和分段线性不同
参数看波峰
## 直方图均衡化
histeq(I,hgram)
具有hgram个灰度
一般最低32
2的n次方
7种方法
阈值点
两个波峰之间的点
空间域滤波
滤波器给奇数
线性移不变系统
非线性系统
卷积(convolution)的作用
计算线性移不变系统的输出
卷积
matlab
线性空间滤波函数
imfilter()
双精度类型
读取完转double
gr=imfilter(f,w,'replicate');
figure()
imshow(gr)
gs=imfilter(f,w,'symmctric');
figure()
imshow(gs)
fspecial() 用于给上面的w
平滑滤波器
锐化滤波器
(查询参数)
均值滤波器
像素平均
加权平均,表明一些像素更为重要
常用的模板图像
滤波器模板效果
锐化滤波器
二阶微分滤波器 拉普拉斯算子
一阶微分滤波器 梯度算子
非线性滤波
中值滤波 用像素邻域内的中间值代替该像素
去除椒盐(黑白点)噪声,优于均值滤波
最小值滤波 用像素邻域内的最小值代替该像素
最大值滤波 用像素邻域内的最大值代替该像素
深度学习
convolution + 池化pooling(subsampling) -- 全连接层FC(fully connected)
卷积加池化算一层,可以叠加多层
真彩图三个通道分别卷积,相加出一张图
多通道图类似
1*1卷积核,降低计算量
输出矩阵大小计算公式
输入大小M*M
卷积核大小N*N
(M-N+2*padding)/stride+1
池化 (pooling/subsampling)
max pooling 最大池化
模板数值默认1
步长默认2
找模板范围中的最大值,作为输出
4*4的输入,模板为2*2
mean/average pooling
均值池化
求均值
m*n--pooling--m/2*n/2
cnn 卷积神经网络
transformer (新技术)
最后一层控制到4-8之间,不能小于4*4
图像全是线性移不变系统,卷积只能计算线性
如果用平滑滤波系统(矩阵),就说提了平滑特征
多层后就成了抽象特征,没有具体意义
池化是对特征优选
评论