matlab - 以下 MATLAB 脚本的答案是否正确?
问题描述
我有一个关于matlab image processing toolbox
. 任务如下:
我对这些步骤的解决方案是:
I = imread('Ball.jpg');
I1 = imnoise(I, 'salt&pepper', 0.2);
G = rgb2gray(I1);
C = fspecial('Laplacian',h);
imwrite(C, 'clean.jpg');
subplot(1,2,1);
imshow(I1,[]);
subplot(1,2,2);
imshow(C,[]);
解决方案
我认为你犯了很多错误。
首先,您阅读的图像已经很嘈杂,因为它没有具体说“为图像添加噪声”。这使您的第二步变得imnoise
多余。
其次,通过使用fspecial
您正在创建一个过滤器。在这种情况下,它的类型是Laplacian
给定 alpha 的过滤器alpha
(介于 0 和 1 之间)。仅此一项并不能过滤您的图像。您必须使用该功能imfilter
才能处理图像。
I = imread('Ball.jpg');
G = rgb2gray(I);
h = fspecial('Laplacian',0.7); % 0.1 is the alpha, try out which one suits your case the most
C = imfilter(G,h);
imwrite(C, 'clean.jpg');
subplot(1,2,1);
imshow(I,[]);
subplot(1,2,2);
imshow(C,[]);
请注意,Laplacian
过滤器不一定是最适合您的。MatLab 文档中列出了许多您可以使用的过滤器类型。考虑使用高斯滤波器。
推荐阅读
- sql - 将 SQL 查询的列连接在一起
- vba - 2018 年 7 月更新后在宏 (Word 2016) 中禁用文档事件
- android - 无法启动新活动作为主要活动
- corda - 在 Corda 中,如何查询库中记录的特定状态之后的所有状态?
- android - 覆盖中的平移键盘
- actions-on-google - 谷歌操作返回空语音响应
- c# - 具有基本和客户端证书身份验证的 WCF 客户端
- kotlin - Kotlin 中的 tailrec 有什么意义?
- c# - Microsoft Visual Studio 2017 中未显示的模板
- kubernetes - 如何诊断 Kubernetes 对 API 没有响应