教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

中值滤波和均值滤波(2)

来源:网络收集 时间:2026-07-07
导读: 中值滤波和均值滤波 61 for (int i = 0; i = bmp.Width - 1; i++) 62 { 63 for (int j = 0; j = bmp.Height - 1; j++) 64 { 65 bmp.SetPixel(i, j, Color.FromArgb(mR[i, j], mG[i, j], mB[i, j])); 66 } 67 } 68 r

中值滤波和均值滤波

61 for (int i = 0; i <= bmp.Width - 1; i++)

62 {

63 for (int j = 0; j <= bmp.Height - 1; j++) 64 {

65 bmp.SetPixel(i, j, Color.FromArgb(mR[i, j], mG[i, j], mB[i, j]));

66 }

67 }

68 return bmp;

69 }

70

71 /// <summary>

72 /// 对矩阵M进行中值滤波

73 /// </summary>

74 /// <param name="m">矩阵M</param>

75 /// <param name="windowRadius">过滤半径</param>

76 /// <returns>结果矩阵</returns>

77 private byte[,] MedianFilterFunction(byte[,] m, int windowRadius)

78 {

79 int width = m.GetLength(0);

80 int height = m.GetLength(1);

81

82 byte[,] lightArray = new byte[width, height]; 83

84 //开始滤波

85 for (int i = 0; i <= width - 1; i++)

86 {

87 for (int j = 0; j <= height - 1; j++)

88 {

89 //得到过滤窗口矩形

90 Rectangle rectWindow = new Rectangle(i - windowRadius, j - windowRadius, 2 * windowRadius + 1, 2 * windowRadius + 1);

91 if (rectWindow.Left < 0) rectWindow.X = 0; 92 if (rectWindow.Top < 0) rectWindow.Y = 0; 93 if (rectWindow.Right > width - 1) rectWindow.Width = width - 1 - rectWindow.Left;

94 if (rectWindow.Bottom > height - 1) rectWindow.Height = height - 1 - rectWindow.Top;

95 //将窗口中的颜色取到列表中

96 List<byte> windowPixelColorList = new List<byte>();

中值滤波和均值滤波

97 for (int oi = rectWindow.Left; oi <= rectWindow.Right - 1; oi++)

98 {

99 for (int oj = rectWindow.Top; oj <= rectWindow.Bottom - 1; oj++)

100 {

101 windowPixelColorList.Add(m[oi, oj]);

102 }

103 }

104 //排序

105 windowPixelColorList.Sort();

106 //取中值

107 byte middleValue = 0;

108 if ((windowRadius * windowRadius) % 2 == 0) 109 {

110 //如果是偶数

111 middleValue = Convert.ToByte((windowPixelColorList[windowPixelColorList.Count / 2] + windowPixelColorList[windowPixelColorList.Count / 2 - 1]) / 2);

112 }

113 else

114 {

115 //如果是奇数

116 middleValue = windowPixelColorList[(windowPixelColorList.Count - 1) / 2];

117 }

118 //设置为中值

119 lightArray[i, j] = middleValue;

120 }

121 }

122 return lightArray;

123 }

中值滤波和均值滤波(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/115167.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)