# 信号与系统课程设计
[TOC]
## 图像处理(平滑、锐化与边缘提取)
### 理论基础
图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。
空间滤波是一种采用滤波处理的影像增强方法。目的是改善影像质量,包括去除高频噪声与干扰,及影像边缘增强、线性增强以及去模糊等。平滑和锐化滤波器是处理数字图像的常用方法。
平滑的主要目的是减少图像中的噪声。锐化的主要目的是突出图像中的细节或增强已经模糊的细节。
### 图像平滑处理
图像在获取、传输的过程中,可能会受到干扰的影响,会产生噪声,噪声是一种出错了的信号,噪声会造成图像粗糙,需要我们对图像进行平滑处理,保留有用的信号。
在imgpr1.m,imgpr2.m中我们使用均值滤波、高斯滤波、中值滤波对img1,img2进行了平滑处理,分别得到三种结果,由于img1中存在椒盐干扰,因此中值滤波效果最好,对于img2则三种效果相似。
img1(最左为原图)
![image-20230523232030867](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305232320952.png)
img2(最左为原图)
![image-20230523231924542](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305232319447.png)
### 图像锐化处理
图像锐化*(image sharpening)*是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,图像锐化是为了突出图像上地物的边缘、轮廓,或某些线性目标要素的特征。这种滤波方法提高了地物边缘与周围像元之间的反差,因此也被称为边缘增强。
图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,这就需要利用图像锐化技术,使图像的边缘变的清晰。
公式推导:
$$
▽^2f=▽f(x+1)−▽f(x)\\
▽f(x)=f(x+1)−f(x)\\
$$
可得:
$$
f(x)=f(x+1)−▽f(x)\\
$$
则:
$$
f(x)=f(x+1)−▽f(x)+▽^2f(x)\\
$$
那么锐化后的图像即为:
$$
g(x)=f(x+1)−▽f(x)+k▽^2f(x)\\
$$
在不考虑精确度的情况下:
$$
g(x)=f(x)+k▽^2f(x)
$$
在imgpr3.m中我们使用两种不同卷积核对img3进行了锐化处理(最左为原图):
![image-20230523232048348](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305232320462.png)
### 图像边缘提取
在imgpr4.m中,我们利用高斯滤波和canny算子,对img2进行了边缘提取:
![image-20230523232154263](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305232321314.png)
## 求图像中细胞平均半径
### 原图
![image](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305282026738.jpeg)
### 预处理
#### 中值滤波
图中很明显存在椒盐噪声(黑白点),因此首先使用中值滤波进行处理。
处理后:
![p1](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305282026731.jpeg)
#### 高斯低通滤波与巴特沃斯低通滤波
之后使用傅里叶变换,将其转换到频域上,再进行后续操作:
- 高斯低通滤波
```matlab
% 读入原始图像
img = imread('p1.jpg');
% 对原始图像进行傅里叶变换
F = fftshift(fft2(img));
% 高斯低通滤波器参数
D0 = 50;
% 构造高斯低通滤波器
[x, y] = meshgrid(-(size(img,1)/2):(size(img,1)/2-1), -(size(img,2)/2):(size(img,2)/2-1));
dist = sqrt(x.^2 + y.^2);
gauss_filter = exp(-dist.^2./(2*D0^2));
% 滤波
filtered_F = F .* gauss_filter;
% 反变换
filtered_img = uint8(real(ifft2(ifftshift(filtered_F))));
% 显示滤波前后的图像
figure;
subplot(1,2,1);imshow(img);title('原始图像');
subplot(1,2,2);imshow(filtered_img);title('滤波后的图像');
```
得到图像![untitled](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305282026807.png)
- 巴特沃斯低通滤波
```matlab
p1 = imread('p1.jpg');
F=double(p1);%数据类型转换,MATLAB不支特图像的无符号整型的i计算
G = fft2(F);%傅立叶变换
G=fftshift(G);%转换数据矩阵
[M,N]=size(G);
nn=2;%二阶巴特沃斯(Butterworth)高通滤波器
d0=30;
m=fix (M/2);n=fix(N/2);
for i=1:M
for j=1:N
d=sqrt((i-m)^2+(j-n)^2);
h=1/(1+0.414*(d/d0)^(2*nn));%i计算传递函数
result(i,j) = h*G(i,j);
end
end
result=ifftshift(result);
Y2=ifft2(result);
Y3=uint8(real(Y2));
subplot(121),imshow(p1),title('原图像');%滤波后图像显示
subplot(122),imshow(Y3),title('巴特沃斯低通滤波后图像');%滤波后图像显示
P_signal = sum(p1(:).^2);
P_noise_denoised = sum((Y3(:) - p1(:)).^2);
SNR_denoised = 10*log10(P_signal/P_noise_denoised);
disp(SNR_denoised);
```
得到图像![untitled](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305282026799.png)
- 两种滤波的比较
| 滤波 | 高斯低通滤波 | 巴特沃斯低通滤波 |
| ------ | ------------ | ---------------- |
| 信噪比 | 6.3678 | 5.1209 |
因此选择高斯低通滤波,之后进行逆傅里叶变换
#### 其余预处理
1. 灰度化
2. 直方图均衡化
3. 低帽变换
4. 调节灰度对比
5. 二值化
6. 形态学操作
- 开操作
- 闭操作
### 计算细胞半径
#### hough圆形检测
```matlab
% 使用Hough变换进行圆形检测
[centers, radii] = imfindcircles(BW3,[4, 20]);
% 计算细胞平均半径
avgRadius = mean(radii);
sigma = std(radii);
lower_threshold = avgRadius - 2 * sigma;
upper_threshold = avgRadius + 2 * sigma;
% 找到位于阈值内的所有元素
idx = find(radii >= lower_threshold & radii <= upper_threshold);
radii = radii(idx);
centers = centers(idx,:);
avgRadius = mean(radii);
figure;
% 显示原始图像和检测结果
imshow(p2); hold on;
h = viscircles(centers, radii,'EdgeColor','b');
title(['Average cell radius: ', num2str(avgRadius)]);
```
结果如图所示:
![untitled](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305282026826.png)
#### bwlabel函数求半径
```matlab
% 连通区域分析,计算每个细胞的面积和周长,并计算等效直径
[L, num] = bwlabel(BW3);
stats = regionprops(L, {'Area', 'Perimeter'});
diameters = zeros(num, 1);
for i = 1 : num
diameters(i) = 2 * sqrt(stats(i).Area / pi);
end
boundaries = bwboundaries(BW3);
disp(['The average diameter of cells is: ', num2str(avg_diameter)]);
figure
% 画出每个细胞的轮廓
imshow(BW3);
hold on;
for i=1:length(boundaries)
boundary = boundaries{i};
plot(boundary(:,2), boundary(:,1),'r','LineWidth',2);
end
```
结果如图所示
![untitled](https://zjyimage.oss-cn-beijing.aliyuncs.com/202305282026872.png)
#### 两种结果对比
1. hough圆形检测法,对于部分形状不是圆的细胞,可能并不适用;
2. bwlabel函数求半径法,由于很多细胞重叠在一起,导致被认定为一个细胞,因此结果比较差。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!
资源推荐
资源详情
资源评论
收起资源包目录
信号与系统课程设计,包含两个小项目:图像处理(平滑、锐化与边缘提取)、求图像中细胞平均半径,均使用matlab实现.zip (17个子文件)
content
细胞尺寸计算
hough.m 1KB
Median_filtering.m 144B
bw.m 1KB
image.jpg 95KB
BLP.m 814B
gs.m 849B
题目.pdf 386KB
p2.jpg 31KB
p1.jpg 49KB
README.md 7KB
图像处理(平滑、锐化与边缘提取)
img2.jpg 62KB
imgpr1.m 448B
imgpr2.m 422B
img1.jpg 67KB
imgpr3.m 331B
img3.jpg 94KB
imgpr4.m 223B
共 17 条
- 1
资源评论
白话机器学习
- 粉丝: 8259
- 资源: 7686
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 筷手引流工具.apk
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功