数字图像处理--算术、几何、谐波、逆谐波均值滤波器Matlab
本文链接:https://blog.csdn.net/Dooonald/article/details/78545461
算术均值
close all
clear all
f=imread('D:/testData/filtering.tif');
[w,h]=size(f);
image= f(:,:);
fsize1=3;
fsize2=5;
fsize3=9;
fssize1=(fsize1-1)/2;
fssize2=(fsize2-1)/2;
fssize3=(fsize3-1)/2;
figure();
subplot(1,2,1);
imshow(image);
xlabel('原图像');
resultImage = image;
for x=1+fssize1:1:w-fssize1
for y=1+fssize1:1:w-fssize1
is=f(x-fssize1:1:x+fssize1,y-fssize1:1:y+fssize1);
resultImage(x,y)=sum(is(:))/numel(is);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('3*3算术均值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize2:1:w-fssize2
for y=1+fssize2:1:w-fssize2
is=f(x-fssize2:1:x+fssize2,y-fssize2:1:y+fssize2);
resultImage(x,y)=sum(is(:))/numel(is);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('5*5算术均值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize3:1:w-fssize3
for y=1+fssize3:1:w-fssize3
is=f(x-fssize3:1:x+fssize3,y-fssize3:1:y+fssize3);
resultImage(x,y)=sum(is(:))/numel(is);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('9*9算术均值');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
几何均值
close all
clear all
f=imread('D:/testData/filtering.tif');
[w,h]=size(f);
image= f(:,:);
fsize1=3;
fsize2=5;
fsize3=9;
fssize1=(fsize1-1)/2;
fssize2=(fsize2-1)/2;
fssize3=(fsize3-1)/2;
figure();
subplot(1,2,1);
imshow(image);
xlabel('原图像');
resultImage = image;
for x=1+fssize1:1:w-fssize1
for y=1+fssize1:1:w-fssize1
is=f(x-fssize1:1:x+fssize1,y-fssize1:1:y+fssize1);
resultImage(x,y)=prod(prod(is(:)))^(1/numel(is));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('3*3几何均值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize2:1:w-fssize2
for y=1+fssize2:1:w-fssize2
%遍历每个点的四周
is=f(x-fssize2:1:x+fssize2,y-fssize2:1:y+fssize2);
resultImage(x,y)=prod(prod(is(:)))^(1/numel(is));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('5*5几何均值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize3:1:w-fssize3
for y=1+fssize3:1:w-fssize3
%遍历每个点的四周
is=f(x-fssize3:1:x+fssize3,y-fssize3:1:y+fssize3);
resultImage(x,y)=prod(prod(is(:)))^(1/numel(is));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('9*9几何均值');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
谐波均值
close all
clear all
f=imread('D:/testData/filtering.tif');
[w,h]=size(f);
image= f(:,:);
fsize1=3;
fsize2=5;
fsize3=9;
fssize1=(fsize1-1)/2;
fssize2=(fsize2-1)/2;
fssize3=(fsize3-1)/2;
figure();
subplot(1,2,1);
imshow(image);
xlabel('原图像');
resultImage = image;
for x=1+fssize1:1:w-fssize1
for y=1+fssize1:1:w-fssize1
is=f(x-fssize1:1:x+fssize1,y-fssize1:1:y+fssize1);
is=1./is;
resultImage(x,y)=numel(is)/sum(is(:));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('3*3谐波均值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize2:1:w-fssize2
for y=1+fssize2:1:w-fssize2
%遍历每个点的四周
is=f(x-fssize2:1:x+fssize2,y-fssize2:1:y+fssize2);
is=1./is;
resultImage(x,y)=numel(is)/sum(is(:));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('5*5谐波均值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize3:1:w-fssize3
for y=1+fssize3:1:w-fssize3
%遍历每个点的四周
is=f(x-fssize3:1:x+fssize3,y-fssize3:1:y+fssize3);
is=1./is;
resultImage(x,y)=numel(is)/sum(is(:));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('9*9谐波均值');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
逆谐波
close all
clear all
f=imread('D:/testData/filtering.tif');
[w,h]=size(f);
image= f(:,:);
Q1 = 1.5;
fsize1=3;
fsize2=5;
fsize3=9;
fssize1=(fsize1-1)/2;
fssize2=(fsize2-1)/2;
fssize3=(fsize3-1)/2;
figure();
subplot(1,2,1);
imshow(image);
xlabel('原图像');
resultImage = image;
for x=1+fssize1:1:w-fssize1
for y=1+fssize1:1:w-fssize1
is=f(x-fssize1:1:x+fssize1,y-fssize1:1:y+fssize1);
resultImage(x,y) = sum(is(:).^(Q1+1))/sum(is(:).^(Q1));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('3*3逆谐波均值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize2:1:w-fssize2
for y=1+fssize2:1:w-fssize2
%遍历每个点的四周
is=f(x-fssize2:1:x+fssize2,y-fssize2:1:y+fssize2);
resultImage(x,y) = sum(is(:).^(Q1+1))/sum(is(:).^(Q1));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('5*5逆谐波均值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize3:1:w-fssize3
for y=1+fssize3:1:w-fssize3
%遍历每个点的四周
is=f(x-fssize3:1:x+fssize3,y-fssize3:1:y+fssize3);
resultImage(x,y) = sum(is(:).^(Q1+1))/sum(is(:).^(Q1));
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('9*9逆谐波均值');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
中值
close all
clear all
f=imread('D:/testData/filtering.tif');
[w,h]=size(f);
image= f(:,:);
fsize1=3;
fsize2=5;
fsize3=9;
fssize1=(fsize1-1)/2;
fssize2=(fsize2-1)/2;
fssize3=(fsize3-1)/2;
figure();
subplot(1,2,1);
imshow(image);
xlabel('原图像');
resultImage = image;
for x=1+fssize1:1:w-fssize1
for y=1+fssize1:1:w-fssize1
is=f(x-fssize1:1:x+fssize1,y-fssize1:1:y+fssize1);
temp = sort(is(:));
resultImage(x,y)= temp((numel(temp)-1)/2);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('3*3中值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize2:1:w-fssize2
for y=1+fssize2:1:w-fssize2
%遍历每个点的四周
is=f(x-fssize2:1:x+fssize2,y-fssize2:1:y+fssize2);
temp = sort(is(:));
resultImage(x,y)= temp((numel(temp)-1)/2);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('5*5中值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize3:1:w-fssize3
for y=1+fssize3:1:w-fssize3
%遍历每个点的四周
is=f(x-fssize3:1:x+fssize3,y-fssize3:1:y+fssize3);
temp = sort(is(:));
resultImage(x,y)= temp((numel(temp)-1)/2);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('9*9中值');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
最大值
close all
clear all
f=imread('D:/testData/filtering.tif');
[w,h]=size(f);
image= f(:,:);
fsize1=3;
fsize2=5;
fsize3=9;
fssize1=(fsize1-1)/2;
fssize2=(fsize2-1)/2;
fssize3=(fsize3-1)/2;
figure();
subplot(1,2,1);
imshow(image);
xlabel('原图像');
resultImage = image;
for x=1+fssize1:1:w-fssize1
for y=1+fssize1:1:w-fssize1
is=f(x-fssize1:1:x+fssize1,y-fssize1:1:y+fssize1);
temp = is(:);
resultImage(x,y)= max(temp);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('3*3最大值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize2:1:w-fssize2
for y=1+fssize2:1:w-fssize2
%遍历每个点的四周
is=f(x-fssize2:1:x+fssize2,y-fssize2:1:y+fssize2);
temp = is(:);
resultImage(x,y)= max(temp);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('5*5最大值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize3:1:w-fssize3
for y=1+fssize3:1:w-fssize3
%遍历每个点的四周
is=f(x-fssize3:1:x+fssize3,y-fssize3:1:y+fssize3);
temp = is(:);
resultImage(x,y)= max(temp);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('9*9最大值');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
最小值
close all
clear all
f=imread('D:/testData/filtering.tif');
[w,h]=size(f);
image= f(:,:);
fsize1=3;
fsize2=5;
fsize3=9;
fssize1=(fsize1-1)/2;
fssize2=(fsize2-1)/2;
fssize3=(fsize3-1)/2;
figure();
subplot(1,2,1);
imshow(image);
xlabel('原图像');
resultImage = image;
for x=1+fssize1:1:w-fssize1
for y=1+fssize1:1:w-fssize1
is=f(x-fssize1:1:x+fssize1,y-fssize1:1:y+fssize1);
temp = is(:);
resultImage(x,y)= min(temp);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('3*3最小值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize2:1:w-fssize2
for y=1+fssize2:1:w-fssize2
%遍历每个点的四周
is=f(x-fssize2:1:x+fssize2,y-fssize2:1:y+fssize2);
temp = is(:);
resultImage(x,y)= min(temp);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('5*5最小值');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize3:1:w-fssize3
for y=1+fssize3:1:w-fssize3
%遍历每个点的四周
is=f(x-fssize3:1:x+fssize3,y-fssize3:1:y+fssize3);
temp = is(:);
resultImage(x,y)= min(temp);
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('9*9最小值');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
中点
close all
clear all
f=imread('D:/testData/filtering.tif');
[w,h]=size(f);
image= f(:,:);
fsize1=3;
fsize2=5;
fsize3=9;
fssize1=(fsize1-1)/2;
fssize2=(fsize2-1)/2;
fssize3=(fsize3-1)/2;
figure();
subplot(1,2,1);
imshow(image);
xlabel('原图像');
resultImage = image;
for x=1+fssize1:1:w-fssize1
for y=1+fssize1:1:w-fssize1
is=f(x-fssize1:1:x+fssize1,y-fssize1:1:y+fssize1);
temp = is(:);
resultImage(x,y)= (max(temp) + min(temp))/2;
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('3*3中点');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize2:1:w-fssize2
for y=1+fssize2:1:w-fssize2
%遍历每个点的四周
is=f(x-fssize2:1:x+fssize2,y-fssize2:1:y+fssize2);
temp = is(:);
resultImage(x,y)= (max(temp) + min(temp))/2;
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('5*5中点');
resultImage= f(:,:);
figure();
subplot(1,2,1);
imshow(f);
xlabel('原图像');
for x=1+fssize3:1:w-fssize3
for y=1+fssize3:1:w-fssize3
%遍历每个点的四周
is=f(x-fssize3:1:x+fssize3,y-fssize3:1:y+fssize3);
temp = is(:);
resultImage(x,y)= (max(temp) + min(temp))/2;
end
end
subplot(1,2,2);
imshow(resultImage);
xlabel('9*9中点');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
数字图像处理--算术、几何、谐波、逆谐波均值滤波器Matlab的更多相关文章
- Win8 Metro(C#)数字图像处理--2.70修正后的阿尔法滤波器
原文:Win8 Metro(C#)数字图像处理--2.70修正后的阿尔法滤波器 /// <summary> /// Alpha filter. /// </summary> / ...
- python数字图像处理(1):环境安装与配置
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...
- 初始----python数字图像处理--:环境安装与配置
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...
- c语言数字图像处理(八):噪声模型及均值滤波器
图像退化/复原过程模型 高斯噪声 PDF(概率密度函数) 生成高斯随机数序列 算法可参考<http://www.doc.ic.ac.uk/~wl/papers/07/csur07dt.pdf&g ...
- Win8 Metro(C#)数字图像处理--3.1图像均值计算
原文:Win8 Metro(C#)数字图像处理--3.1图像均值计算 /// <summary> /// Mean value computing. /// </summary> ...
- Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
原文:Win8 Metro(C#)数字图像处理--2.52图像K均值聚类 [函数名称] 图像KMeans聚类 KMeansCluster(WriteableBitmap src,i ...
- Win8Metro(C#)数字图像处理--2.9图像均值滤波
原文:Win8Metro(C#)数字图像处理--2.9图像均值滤波 [函数名称] 图像均值滤波函数MeanFilterProcess(WriteableBitmap src) [函数代码] ...
- python数字图像处理(五) 图像的退化和复原
import cv2 import numpy as np import matplotlib.pyplot as plt import scipy import scipy.stats %matpl ...
- paper 108:系统学习数字图像处理之图像复原与重建
首先,必须注意这里所限制的处理条件. 关于图像退化/复原模型 退化的图像是由成像系统的退化加上额外的噪声形成的. 1.只考虑噪声引起的退化 噪声模型,包含于空间不相关和相关两种,除了空间周期噪声,这里 ...
随机推荐
- List转换字典去重问题
数据源 var list = new List<TestClass> { ,Name="}, ,Name="}, ,Name="}, ,Name=" ...
- Python——格式化输出
如果我们需要格式化输出一个用户的信息,我们将会使用: ------------ info of xinbing ---------- Name : xinbing Age : 22 job : IT ...
- windows cmd命令学习
tasklist|findstr "py"
- 基于ELK的日志分析、存储、展示
原文:https://blog.51cto.com/11134648/2163789 ELK简介 ELK是一套完整的日志解决方案,由ElasticSearch.Logstash. Kibana这三款开 ...
- Nginx练习练习玩玩
Date:2019-11-9 读前思考: 对于NGINX,一般会问什么? 面试官会从哪方面入手? 面试官到底想考察什么? 你做好准备了吗? 如果对于初学者,往往可以通过面试题来提升对某一个技术的了解和 ...
- JDBC终章- 使用 DBUtils实现增删查改- C3P0Utils数据源/QueryRunner runner连接数据源并执行sql
JDBC终章- 使用 DBUtils实现增删查改 1.数据库结构 Create Table CREATE TABLE `user` ( `id` ) NOT NULL AUTO_INCREMENT, ...
- mysql安装笔记
MySQL-mysql 8.0.11安装教程 - Laumians - 博客园 https://www.cnblogs.com/laumians-notes/p/9069498.html mysql ...
- C#格式化信息,格式化数字、格式化日期
一.格式化方法: 1.ToString()实例方法 使用当前文化: varname.ToString("C4"); 使用特定文化: varname.ToString("C ...
- 利用selenium自动化测试样例一
import argparse import logging import psycopg2 import datetime,time import os,sys from selenium impo ...
- 浅析Scrapy框架运行的基本流程
本篇博客将从Twisted的下载任务基本流程开始介绍,然后再一步步过渡到Scrapy框架的基本运行流程,其中还会需要我们自定义一个Low版的Scrapy框架.但内容不会涉及太多具体细节,而且需要注意的 ...