Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. using System.Collections.Generic;
  2.  
  3. namespace Recognizer
  4. {
  5. internal static class MedianFilterTask
  6. {
  7. public static double[,] MedianFilter(double[,] original)
  8. {
  9. int width = original.GetLength(0);
  10. int heigth = original.GetLength(1);
  11. var medians = new double[width, heigth];
  12. var pixelsAround = new List<double>();
  13.  
  14. for (int i = 0; i < width; i++)
  15. for (int j = 0; j < heigth; j++)
  16. {
  17. for (int x = 0; x <= 2; x++) //область медианы по х
  18. for (int y = 0; y <= 2; y++) //область медианы по у
  19. if ((i + x > 0) && (j + y > 0) && (i + x <= width) && (j + y <= heigth))
  20. pixelsAround.Add(original[i + x - 1, j + y - 1]);
  21.  
  22. pixelsAround.Sort();
  23. int numberOfNearbyCells;
  24. double median;
  25. numberOfNearbyCells = pixelsAround.Count;
  26.  
  27. if (numberOfNearbyCells % 2 == 0)
  28. median = (pixelsAround[numberOfNearbyCells / 2 - 1] + pixelsAround[numberOfNearbyCells / 2]) / 2;
  29. else
  30. median = pixelsAround[numberOfNearbyCells / 2];
  31. medians[i, j] = median;
  32. pixelsAround = new List<double>();
  33. }
  34.  
  35. return medians;
  36. }
  37. }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement