0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MATLAB对数字图像处理有各种函数支持

电子工程师 来源:未知 作者:李倩 2018-08-24 10:27 次阅读

在图像采集和生成中会不可避免的引入噪声,图像噪声是指存在于图像数据中的不必要的或多余的干扰信息,这对我们对图像信息的提取造成干扰,所以要进行去噪声处理,常见的去除噪声的方法有均值滤波、中值滤波、高斯滤波等,这一篇要实现的是均值滤波。

均值滤波的方法是将图像数据生成3x3的矩阵或是5x5等其他模板,然后对这个矩阵模板进行处理。在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围 8 个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。说白了就是对这九个数求个平均值代替中间的那个数。在FPGA中我们为了简便运算只将目标像素周围八个点求和然后除以8,取代目标像素点。

MATLAB对数字图像处理有各种函数支持,各种滤波和边缘检测都可以之间用几行函数实现,但是博主本着学习算法的基本原理,所以不用函数自己根据滤波原理写代码。本设计是在上一篇RGB转Gray后的灰度图进行滤波处理。

添加噪声污染函数

g = imnoise(I,type,parameters)

g=imnoise(f,'salt & pepper',d)用椒盐噪声污染图像f,其中d是噪声密度(即包括噪声值的图像区域的百分比)。因此,大约有d*numel(f)个像素受到影响。默认的噪声密度为0.05。

本设计只用到了对椒盐噪声的处理,所以仅记录这一种噪声的添加。

均值滤波代码

1 %Mean Filter 2 clc; 3 clear all; 4 close all; 5 6 RGB_data = imread('lena.jpg'); 7 8 R_data = RGB_data(:,:,1); 9 G_data = RGB_data(:,:,2);10 B_data = RGB_data(:,:,3)11 12 %imshow(RGB_data);13 14 [ROW,COL, DIM] = size(RGB_data); 15 16 Y_data = zeros(ROW,COL);17 Cb_data = zeros(ROW,COL);18 Cr_data = zeros(ROW,COL);19 Gray_data = RGB_data;20 21 for r = 1:ROW 22 for c = 1:COL23 Y_data(r, c) = 0.299*R_data(r, c) + 0.587*G_data(r, c) + 0.114*B_data(r, c);24 Cb_data(r, c) = -0.172*R_data(r, c) - 0.339*G_data(r, c) + 0.511*B_data(r, c) + 128;25 Cr_data(r, c) = 0.511*R_data(r, c) - 0.428*G_data(r, c) - 0.083*B_data(r, c) + 128;26 end27 end 28 29 Gray_data(:,:,1)=Y_data;30 Gray_data(:,:,2)=Y_data;31 Gray_data(:,:,3)=Y_data;32 33 figure;34 imshow(Gray_data);35 36 %Gray Mean Filter37 38 Gray_data = im2double(Gray_data);39 imgn = imnoise(Gray_data,'salt & pepper',0.05); 40 41 %imgn = Gray_data;42 43 figure;44 imshow(imgn);45 46 for r = 2:1:ROW-147 for c = 2:1:COL-148 Mean_Img(r,c) = (imgn(r-1, c-1) + imgn(r-1, c) + imgn(r-1, c+1) + imgn(r, c-1) + imgn(r, c) + imgn(r, c+1) + imgn(r+1, c-1) + imgn(r+1, c) + imgn(r+1, c+1)) / 9;49 end50 end51 52 figure;53 imshow(Mean_Img);

处理前后图片结果比较

Gray lena

Mean_Filter lena

从处理前后的图片中可以看到处理过后的图片变模糊了一些,这是因为均值滤波就是将图像做平滑处理,像素值高的像素会被拉低,像素值低像素会被拉高,趋向于一个平均值,所以图像会变模糊一些。

加入椒盐噪声后的lena

加入椒盐噪声后Mean_Filter lena

椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素。椒盐噪声是一种因为信号脉冲强度引起的噪声。这里可以看出均值滤波对虽然是对图像进行平滑处理,但是对椒盐噪声基本无作用,要对椒盐噪声处理就要用中值滤波了,博主下一篇再接着做。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像采集
    +关注

    关注

    2

    文章

    279

    浏览量

    41061
  • 函数
    +关注

    关注

    3

    文章

    3845

    浏览量

    61215
  • 均值滤波
    +关注

    关注

    0

    文章

    6

    浏览量

    7077

原文标题:基于MATLAB的均值滤波算法实现

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    matlab数字图像处理基础编程教程

    matlab数字图像处理基础编程教程
    发表于 06-22 23:00

    Matlab数字图像处理[2]

    matlab数字图像处理[2].pdf
    发表于 12-04 16:45

    数字图像处理

    1、图像的变换和压缩,利用离散余弦变换(DCT)2、实现图像的真彩色增强3、实现图像的灰度变换,利用直方图均衡化的方法4、使用常用的滤波器对数字图像进行
    发表于 04-11 23:33

    冈萨雷斯数字图像处理MATLAB版.中文版

    冈萨雷斯数字图像处理MATLAB版.中文版
    发表于 12-21 09:10

    冈萨雷斯数字图像处理MATLAB版(.m代码)

    冈萨雷斯数字图像处理MATLAB版(.m代码)
    发表于 12-21 09:21

    MATLAB数字图像处理

    `MATLAB语言简洁,可读性强,工具箱涉及的专业领域广泛且功能强大。图像工具箱几乎包括所有经典的图像处理方法,尤其在图像
    发表于 12-01 18:25

    【下载】《数字图像处理MATLAB实现(第2版)》

    `内容简介  《国外计算机科学经典教材:数字图像处理MATLAB实现(第2版)》是本介绍图像处理的基础理论以及
    发表于 04-17 17:30

    数字图像处理与机器视觉:Visual C++与Matlab实现

    数字图像处理与机器视觉:Visual C++与Matlab实现
    发表于 04-01 13:58

    应用MATLAB语言处理数字信号与数字图像

    应用MATLAB语言处理数字信号与数字图像
    发表于 05-22 09:19

    MATLAB数字图像处理中的应用

    介绍了如何利用MATLAB 及其图像处理工具箱进行数字图像处理,并通过一些例子来说明利用MATLAB
    发表于 07-08 08:25 121次下载

    数字图像处理试题集

    数字图像处理试题集数字图像处理试题集数字图像处理试题集
    发表于 12-21 15:13 3次下载

    应用MATlAB语言处理数字信号与数字图像

    应用MATlAB语言处理数字信号与数字图像
    发表于 12-30 15:19 1次下载

    基于matlab数字图像变换

    基于matlab数字图像变换有代码和注释。
    发表于 06-17 14:35 5次下载

    数字图像处理Matlab

    数字图像处理是信息学科一个重要的类别,可以和电子技术结合发展。
    发表于 06-24 15:51 0次下载

    基于MATLAB数字图像人数统计_张建青

    基于MATLAB数字图像人数统计_张建青
    发表于 03-18 09:04 9次下载