失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数字图像处理--算术 几何 谐波 逆谐波均值滤波器Matlab

数字图像处理--算术 几何 谐波 逆谐波均值滤波器Matlab

时间:2019-11-11 23:46:51

相关推荐

数字图像处理--算术 几何 谐波 逆谐波均值滤波器Matlab

本文链接:/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》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。