It's some Matlab codes for Digital Image Processing.
E-mail: 1061659563@qq.com or wanghuichn@yahoo.com
- Experiment 1
- Mainly functions
- 数字图像的基本读写、显示与保存;五类图形显示方法
- 读取图像并显示灰度图像、索引图像、RGB图像、二进制图像、多帧图像;进行图像类型转化
- 编程实现最近邻法、双线性内插法(及它的改进方法)、双三次内插法的图像放大(全部考虑到RGB图而不光是适用于灰度图)
- Problems
- 双三次内插法的核函数是否有更好的形式?
- Mainly functions
- Experiment 2
- Mainly functions
- 图像的直方图均衡
- 图像的直方图规定化(匹配)
- 局部直方图均衡
- Problems
- 如何客观评价直方图均衡及规定化的好坏?
- Mainly functions
- Experiment 3
- Mainly functions
- 对图像添加椒盐噪声以及高斯噪声
- 实现对图像的均值滤波、高斯滤波、中值滤波
- 实现laplacian算子对图像的增强、Sobel算子对图像边缘提取
- 使用均方误差和交叉熵对图像去噪效果进行了量化评价(客观评价)
- 初步接触
OpenCV
库,用OpenCV库实现- 高斯噪声处理
- 椒盐噪声处理
- Laplacian图像增强
- Sobel边缘提取
- Problems
- 个人感觉OpenCV的
WaitKey()
函数存在一些问题,也许是不懂吧
- 个人感觉OpenCV的
- Mainly functions
- Experiment 4
- Mainly functions
- 充分利用matlab快速矩阵相乘实现
离散傅里叶变换
- 实现三种
快速傅里叶变换
(FFT)以及相应的逆变换包括一维变换及二维变换- 时域抽取基-2FFT算法(递归版)
- 时域抽取基-2FFT算法(迭代版)
蝴蝶算法
- 基于稀疏矩阵分解的FFT
参考书:快速傅里叶变换:算法与应用 - 对算法进行了运行时间测试并与Matlab自带fft进行了比较
- 利用
FFT2()
实现二维高斯光束的菲涅尔衍射和夫琅禾费衍射 - 使用C++ & OpenCV实现了基本的快速傅里叶变换类
class myDFT()
- 充分利用matlab快速矩阵相乘实现
- Problems
- Matlab申请内存空间的函数实在是太慢了,严重拖慢FFT的运行速度,而它的矩阵运算是真的快,这种时候C/C++的优势就体现出来了
- Extra
- 一个著名的开源FFT库:fftw (Matlab的fft的底层库)
- Mainly functions
- Experiment 5
- Mainly functions
- 编程实现了图像的理想低通、高斯低通 、布特沃斯低通滤波及相应的高通滤波
- 实现陷波(带阻、带通)滤波器对图像进行滤波
- 对一幅图像进行运动模糊并加高斯噪声,然后对图像进行逆滤波、维纳滤波进行图像复原
- 初步接触
QT框架
,利用C++ & OpenCV & QTcreator实现了一个频域滤波GUI小软件(可打包单独运行)
- Problems
- 限波滤波器对图像进行滤波只能以人机交互的方式,没有普适性,是个遗憾
- Mainly functions
- Experiment 6
- Experiment 7
- Mainly functions
- 实现图像基本形态学处理(腐蚀、膨胀、开运算、闭运算)
- 实现提取给定图像不同形状的结构元素特征(使用形态学开运算和闭运算)
- 实现对酵母细胞以及酵母细胞核的图像分割
- Otus方法
- 拉普拉斯为基础的边缘信息改进 冈萨雷斯数字图像处理p485
- Mainly functions
- FP(指纹识别)
- Mainly functions
- 基于灰度共生矩阵的纹理相似度指纹识别
- 生成指纹库
- 计算指纹图像的灰度共生矩阵及特征值
- 读入指纹图像并与指纹库中的数据进行比对(通过计算共生矩阵特征值的欧氏距离的方式)
- Problems
- 对纹理特征分析的理解不够深入,实际效果并不是很好,有很大的改进空间。
- Mainly functions
- Study_the_code
- 几个值得去仔细研究学习的Matlab函数