热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

灰度最小方差的均值滤波器原理及matlab代码实现

灰度最小方差的均值滤波器本方法的核心思想是,设置一个模板,如果模板中的像素属于同一个区域,则模板中不包含边界像素,可以进行

灰度最小方差的均值滤波器

本方法的核心思想是,设置一个模板,如果模板中的像素属于同一个区域,则模板中不包含边界像素,可以进行平滑处理;如果模板中的像素属于至少两个不同的区域,则模板中包含有边界像素,这是要对其进行保持,不进行平滑处理。

要判断模板中的像素是否属于同一区域,一个最常用的方法是计算模板中所有像素的灰度方差,如果方差大,则表明模板像素属于不同区域的可能性大。考虑到景物边界的不规则性,选9个不同形状的模板。对9个模板所覆盖区域中的像素,分别计算其灰度分布方差,然后选择出方差为最小的模板中的像素灰度均值代替原像素值。下图2-1是9个形状不同的平滑处理模板。

                                                                2-1  9种不同形状的平滑处理模板

 “o  ”包围的像素是当前的待处理像素。灰度最小方差的均值滤波算法流程如下:

1)以“ o”包围的f(x,y)像素为中心,计算图2-1所示的9个模板中的所有像素的灰度分布方差;

2)找出方差值为最小的模板位置;

3)将所选择出的模板中的像素的灰度平均值替代f(x,y);

4)对图像中所有处于滤波范围内的像素点均进行相同的处理。

 

简单矩阵实例:


clc
close all
%% 灰度最小方差的均值滤波器
%朱虹-数字图像处理基础,第94页实例
f=[1 3 2 3 2 1 2;1 2 1 4 3 3 2;1 10 2 3 4 4 2;5 2 6 18 8 7 3;5 5 7 0 8 8 5;5 6 7 8 9 9 8;4 5 6 8 8 6 7];
[row, col]=size(f);
k=f;
for r=3:row-2for c=3:col-2n1=[k(r-2,c-1),k(r-2,c),k(r-2,c+1),k(r-1,c-1),k(r-1,c),k(r-1,c+1),k(r,c)];n2=[k(r-1,c+1),k(r-1,c+2),k(r,c),k(r,c+1),k(r,c+2),k(r+1,c+1),k(r+1,c+2)];n3=[k(r,c),k(r+1,c-1),k(r+1,c),k(r+1,c+1),k(r+2,c-1),k(r+2,c),k(r+2,c+1)];n4=[k(r-1,c-2),k(r-1,c-1),k(r,c-2),k(r,c-1),k(r,c),k(r+1,c-2),k(r+1,c-1)];n5=[k(r-2,c-2),k(r-2,c-1),k(r-1,c-2),k(r-1,c-1),k(r-1,c),k(r,c-1),k(r,c)];n6=[k(r,c-1),k(r,c),k(r+1,c-2),k(r+1,c-1),k(r+1,c),k(r+2,c-2),k(r+2,c-1)];n7=[k(r,c),k(r,c+1),k(r+1,c),k(r+1,c+1),k(r+1,c+2),k(r+2,c+1),k(r+2,c+2)];n8=[k(r-2,c+1),k(r-2,c+2),k(r-1,c),k(r-1,c+1),k(r-1,c+2),k(r,c),k(r,c+1)];n9=[k(r-1,c-1),k(r-1,c),k(r-1,c+1),k(r,c-1),k(r,c),k(r,c+1),k(r+1,c-1),k(r+1,c),k(r+1,c+1)];nn=[round(mean(n1)),round(mean(n2)),round(mean(n3)),round(mean(n4)),round(mean(n5)),round(mean(n6)),round(mean(n7)),round(mean(n8)),round(mean(n9))];m=[var_n(n1) var_n(n2) var_n(n3) var_n(n4) var_n(n5) var_n(n6) var_n(n7) var_n(n8) var_n(n9)];%对9个方差进行冒泡排序法        for i=1:8for j=1:9-iif m(j)>m(j+1)t1=m(j+1);m(j+1)=m(j);m(j)=t1;t=nn(j+1);nn(j+1)=nn(j);nn(j)=t;endendendf(r,c)=nn(1,1);      end
end
f


 


推荐阅读
author-avatar
手机用户2502886933
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有