MATLAB图像处理:加噪,滤波等


前言

不知不觉就到了大四,以前觉得离自己很远的毕业设计,转眼间就需要自己动手去完成。这篇文章的作用,是记录一些自己在写查资料的时候查到的一些原理性的东西,目的是方便自己在后期写论文的时候不至于一脸懵。所以会不定期更新,希望能早日完成毕设


一、理想低通滤波

1. 图片缩放

为了提高运算速率,对原图进行缩放,在本实验中,所提供的的数据集中图片大小为 512×512,使用函数 imresize

files = dir(fullfile('地址','*.jpg'));
lengthFiles = length(files);
for i = 1:lengthFiles
    address=strcat('地址',files(i).name);
    new_address=strcat('地址\resize_',files(i).name);
    Img = imread(address);
    new_img=imresize(Img,0.25);
    imwrite(new_img,new_address);
end

2. 低通滤波

使用函数 fft2fftshift 。其中 fft2 是二维快速傅里叶变换;fftshift 的作用是将零频点移动到频谱的中央。首先探究低通滤波应该选用的阈值是哪个(判断标准是滤波后的图像出现模糊,但是又不至于太过于模糊)

根据图像,应该选用阈值为50.

低通滤波使用的函数如下:

function [img_origin,img_lpf] = Lpf(address,threshold,if_noise)
%Lpf:Low pass filtering(低通滤波)
%address:图像地址
%threshold:低通滤波阈值
%if_noise:是否需要加噪
Img = imread(address);
%imshow(Img)                                    %展示图像
img_origin=Img;
img_origin=rgb2gray(img_origin);                %彩色图转灰度图
if if_noise 
    %img_noise=imnoise(img_origin,'salt');          % 加椒盐噪声
    img_noise=imnoise(img_origin,'gaussian');       % 加高斯噪声
    img_f=fftshift(fft2(double(img_noise)));        %傅里叶变换得到频谱(带噪声
end
img_f=fftshift(fft2(double(img_origin)));        %傅里叶变换得到频谱(无噪声
[m, n]=size(img_f);
m_mid=fix(m/2);  %是不是可以有其他取整方式?
n_mid=fix(n/2);
img_lpf=zeros(m,n);
h=zeros(m,n);
for i=1:m
    for j=1:n
        d=sqrt((i-m_mid)^2+(j-n_mid)^2);   %理想低通滤波,求距离
        if d<=threshold
            h(i,j)=1;
        else
            h(i,j)=0;
        end
        img_lpf(i,j)=h(i,j)*img_f(i,j);
    end
end

img_lpf=ifftshift(img_lpf);                     %反傅里叶变换
img_lpf=uint8(real(ifft2(img_lpf)));            %取实数部分
end

总结

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MATLAB是科学和工程计算领域最为流行的软件之一,因为它提供了大量的工具箱和函数库使得开发者能够快速地完成图片或其它类型的处理。MATLAB的一个重要特点就是提供可视化的设计界面,也可以利用一些简单的代码对不同数据或者图像提供需要的操作。 在我们这个问题中,MATLAB的app源码包含图像处理中的直方图均衡,几何变换以及加噪滤波。这些都是当下广泛使用的图像处理方法。 直方图均衡(Histogram Equalization)是通过调整像素灰度值分布来增加图像对比度的方法。在代码中,可以设定不同的参数来使得直方图均衡化更加合适和符合实际需要。 几何变换(Geometric Transformations)包括旋转、缩放、平移、拉伸和翻转等等。这个功能的使用很方便,我们可以通过app界面实现所需要的像素变换。 加噪滤波(Noise Filtering)指的是通过滤波消除噪音的过程。噪声可以出现在任何图像中,造成图像失真和质量不佳。用户可以手动设置需要消除的噪声类型,如加性高斯噪声或椒盐噪声,等等。 总的来说,使用MATLAB的app开发源码进行图像处理是十分方便和快捷的。它提供了大量的功能和处理方法,使得用户可以更加容易地进行图像处理。也可以根据不同的需求开发自己的新的图像处理方法。 ### 回答2: MATLAB是一种强大的数学计算和编程环境,广泛用于工程、科学和数据分析。MATLAB的应用程序(App)是一种交互式工具,能够提供易于使用的界面,以便用户可以使用自己的数据进行各种操作。在MATLAB中进行图像处理是一项常见任务。其中,直方图均衡、几何变换和加噪滤波图像处理中常用的技术。 直方图均衡是一种图像增强技术,其基本原理是在整个图像的灰度分布中增加对比度。直方图均衡可以通过增加像素灰度值的动态范围,来改善图像的视觉效果。可以通过MATLAB App来实现直方图均衡,需要使用一些基本的图像处理函数,如imread、histeq和imshow。 几何变换是改变图像形状和大小的技术,其可应用于图像缩放、旋转、裁切和反转等。MATLAB提供了很多用于几何变换的函数,如imresize、imrotate、imcrop和flipud。在MATLAB App中执行几何变换操作需要使用这些函数之一,为用户提供可控参数,以便在图像变换过程中对所需的几何变换面板进行调整。 加噪滤波是对图像中存在的影响信号进行处理的一种技术。从不同噪声模型到各种滤波器,MATLAB为各种噪声处理任务提供了一套内置的函数。在MATLAB App中执行加噪滤波操作需要使用一些基本的图像处理函数,如imread、imnoise和imshow,并根据用户所需的噪声类型和滤波器类型进行调整。 总而言之,三种图像处理技术都非常重要,同时也非常常用。MATLAB App为用户提供了方便的交互界面,以便更快速地执行这些操作,进而提高图像处理的效率和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值