数字图像处理笔记
标签搜索
侧边栏壁纸
  • 累计撰写 19 篇文章
  • 累计收到 1 条评论

数字图像处理笔记

bai1hao
2025-03-28 / 0 评论 / 20 阅读 / 正在检测是否收录...

m9122qcn.png

采样 & 量化

采样

针对坐标轴,成像技术,空间分辨率

量化

针对函数值,模拟图像(线性),转换数字图像(非线性),灰度分辨率

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
降低加性随机噪声

去除高斯白噪声
叠加平均法

% 代码待补充

m911frs4.png

加法运算

加一个常数图像会变亮

减法运算

差影法
应用:动态监测,运动目标,跟踪,图像背景消除,目标识别

梯度幅度
获取轮廓:和右边+上边像素想减,取绝对值后比较最大值

乘法运算

做图像掩膜操作
等比例变亮

除法

待补充

图像增强

m911mcm2.png

灰度直方图

统计同色像素点个数

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种方法

阈值点
两个波峰之间的点

空间域滤波

卷积
m911p023.png
m911phai.png

matlab
线性空间滤波函数

imfilter()

双精度类型

读取完转double
gr=imfilter(f,w,'replicate');
figure()
imshow(gr)

gs=imfilter(f,w,'symmctric');
figure()
imshow(gs)

fspecial() 用于给上面的w
平滑滤波器
锐化滤波器
(查询参数)

均值滤波器

像素平均
加权平均,表明一些像素更为重要

常用的模板图像

滤波器模板效果

m91218lc.png

锐化滤波器

二阶微分滤波器 拉普拉斯算子
一阶微分滤波器 梯度算子

非线性滤波

中值滤波 用像素邻域内的中间值代替该像素
去除椒盐(黑白点)噪声,优于均值滤波

最小值滤波 用像素邻域内的最小值代替该像素
最大值滤波 用像素邻域内的最大值代替该像素

深度学习

m91237yf.png
m9123isr.png

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
图像全是线性移不变系统,卷积只能计算线性
如果用平滑滤波系统(矩阵),就说提了平滑特征
多层后就成了抽象特征,没有具体意义
池化是对特征优选

5

评论

博主关闭了所有页面的评论