Skip to content

Instantly share code, notes, and snippets.

@fend25
Last active August 29, 2015 14:02
Show Gist options
  • Save fend25/4ecdda418187c759e679 to your computer and use it in GitHub Desktop.
Save fend25/4ecdda418187c759e679 to your computer and use it in GitHub Desktop.
// Медианная фильтрация
$('#btn-filtering-mediana').click(function (e) {
checkImageLoaded();
var gsImage2d = copyGrayScaleImage1dTo2d(window.gsImage);
var d = gsImage2d.data;
var outputImage = [];
var windowSize = parseInt($('#input-filtering-mediana-windowsize').val()) || 3;
var wh = windowSize;
var ww = windowSize;
var edgex = Math.floor(ww / 2);
var edgey = Math.floor(wh / 2);
for (var f = edgey; f < gsImage2d.height - edgey; f++) {
outputImage[f-edgey] = [];
for (var l = edgex; l < gsImage2d.width - edgex; l++) {
var slidingWindow = [];
var k = 0;
for (var i = 0; i < wh; i++) {
for (var j = 0; j < ww; j++) {
slidingWindow[k] = d[f-edgey+i][l-edgex+j];
k++;
}
}
slidingWindow.sort();
outputImage[f-edgey][l-edgex] = slidingWindow[Math.floor(k / 2)];
}
}
renderGrayScaleImage(canvas2, copyGrayScaleImage2dTo1d({
width: gsImage2d.width - 2 * edgex,
height: gsImage2d.height - 2 * edgey,
data: outputImage
}));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment