iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 10
0

廢話不多說,我們再看一次3x3遮罩的程式

int median(int *sort)
{
	int i,j,n;
	int max;
	for( i=0; i<5; i++ ){
		for( j=1, n=0, max=sort[0]; j<9; j++ ){
			if( max<sort[j] ){
				max = sort[j];
				n = j;
			}
		}
		sort[n] = -1;
	}
	return max;
}

以上程式為:3x3遮罩,共遮罩了9格,而中值是第5個位置

https://ithelp.ithome.com.tw/upload/images/20171227/20107818bvlOeGXaL3.png
上圖為原始影像

https://ithelp.ithome.com.tw/upload/images/20171227/20107818GnputyvOOg.png
上圖為3x3遮罩、排小至大順序後取第5位

https://ithelp.ithome.com.tw/upload/images/20171227/20107818Zj6DBipXHj.png
上圖為3x3遮罩、排小至大順序後取第2位

https://ithelp.ithome.com.tw/upload/images/20171227/201078188srXpXMKCx.png
上圖為3x3遮罩、排小至大順序後取第8位

===========================分格線===========================

接下來我們了解5x5的遮罩方式會否有不同?

int median(int *sort)
{
	int i,j,n;
	int max;
	for( i=0; i<13; i++ ){
		for( j=1, n=0, max=sort[0]; j<25; j++ ){
			if( max<sort[j] ){
				max = sort[j];
				n = j;
			}
		}
		sort[n] = -1;
	}
	return max;
}

5x5的遮罩,共需要為25個像素處理,而中位數是13
我們看看結果

https://ithelp.ithome.com.tw/upload/images/20171227/20107818P3UcXBP4gE.png
上圖為5x5遮罩、排小至大順序後取第13位

https://ithelp.ithome.com.tw/upload/images/20171227/20107818I4G7ncz6yU.png
上圖為5x5遮罩、排小至大順序後取第2位

https://ithelp.ithome.com.tw/upload/images/20171227/20107818e8XhvzwPgc.png
上圖為5x5遮罩、排小至大順序後取第24位

===========================分格線===========================

5x5的遮罩看似比較好,那我們推論是否遮罩愈大,處理雜訊能力愈強
為了證明理論,我又做了7x7的遮罩
程式如下:

int median(int *sort)
{
	int i,j,n;
	int max;
	for( i=0; i<25; i++ ){
		for( j=1, n=0, max=sort[0]; j<49; j++ ){
			if( max<sort[j] ){
				max = sort[j];
				n = j;
			}
		}
		sort[n] = -1;
	}
	return max;
}

7x7的遮罩,共需要為49個像素處理,而中位數是25

https://ithelp.ithome.com.tw/upload/images/20171227/20107818t7vz6tVMYu.png
上圖為7x7遮罩、排小至大順序後取第25位

https://ithelp.ithome.com.tw/upload/images/20171227/20107818dFkbmPy8j7.png
上圖為7x7遮罩、排小至大順序後取第5位

https://ithelp.ithome.com.tw/upload/images/20171227/20107818hX94DQuGh5.png
上圖為7x7遮罩、排小至大順序後取第48位

===========================結論===========================

我們從以上的結果得知,遮罩愈大,處理雜訊能力愈強
但同時,較大的遮罩,對於雜訊的定義也較低
所以人類認為資訊的部份,卻被程式判定為雜訊

而排順序後,取不同的位置,也可以幫助影像判定雜訊
取較前的位置,影像會減少雜訊,
取較後的位置,影像則會放大雜訊的效果

遮罩愈大,也會把方形的直角處理成曲邊,這個也是需要注意的地方
影像利用排序統計濾波器處理雜訊後,可繼續為影像作細線化,令影像的邊界更明顯。


上一篇
[影像處理系列] 排序統計濾波器[1]
下一篇
call by value很佔空間?
系列文
提神?看程式比喝咖啡更有效。30

1 則留言

0
shnovaj30101
iT邦新手 5 級 ‧ 2017-12-28 00:45:54

感覺很有趣呢哈哈

我要留言

立即登入留言