ノイズ除去 メディアン法
ノイズ除去にメディアン法を実装
こちらからどうぞ
ソースは右クリックで
考え方は簡単で、
周囲の画素のメディアンをとって新たな画素としています。
点状に存在するノイズに有効です。
以下ソース
//メディアン法 private function noise_median():void{ if(target_bmpData == null) return; bmpData2 = new BitmapData(target_bmpData.width, target_bmpData.height); var h:int = bmpData2.height; var w:int = bmpData2.width; var col:Color = new Color(); var sortr:Array = [], sortg:Array = [], sortb:Array = []; var rr:int, gg:int, bb:int; var rd:int; for(var y:int = 0; y < h; y++){ for(var x:int = 0; x < w; x++){ rr = gg = bb = 0; rd = 0; for(var yy:int = -1; yy <= 1; yy++){ for(var xx:int = -1; xx <= 1; xx++){ col.color = target_bmpData.getPixel(x+xx, y+yy); sortr[rd] = col.r; sortg[rd] = col.g; sortb[rd] = col.b; rd++; } } col.r = sortr.sort()[4]; col.g = sortg.sort()[4]; col.b = sortb.sort()[4]; bmpData2.setPixel(x,y,col.color); } } view.bitmapData = target_bmpData = bmpData2; myImage.width = view.width = myImage.width; myImage.height = view.height = myImage.height; }