Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. using System.Collections.Generic;
  2. namespace Recognizer
  3. {
  4. public static class ThresholdFilterTask
  5. {
  6. public static double[,] GetColorsFilter(double t, double[,] original){
  7. var fieldWidth = original.GetLength(0);
  8. var fieldHight = original.GetLength(1);
  9. var colorsFilter = new double[fieldWidth, fieldHight];
  10. for (var i = 0; i < fieldWidth; i++)
  11. {
  12. for (var j = 0; j < fieldHight; j++)
  13. {
  14. if (original[i, j] >= t)
  15. colorsFilter[i, j] = 1.0;
  16. else colorsFilter[i, j] = 0.0;
  17. }
  18. }
  19. return colorsFilter;
  20. }
  21.  
  22. public static double GetT(double whitePixelsFraction, int fieldWidth, int fieldHight, List<double> list){
  23. var sumWhitePixels = (int)((whitePixelsFraction) * fieldWidth * fieldHight);
  24. double t;
  25. if (sumWhitePixels > 0){
  26. t = list[fieldWidth * fieldHight - sumWhitePixels];
  27. }
  28. else{
  29. t = double.MaxValue;
  30. }
  31. return t;
  32. }
  33.  
  34. public static double[,] ThresholdFilter(double[,] original, double whitePixelsFraction)
  35. {
  36. var list = new List<double>();
  37. var fieldWidth = original.GetLength(0);
  38. var fieldHight = original.GetLength(1);
  39. var colorsFilter = new double[fieldWidth, fieldHight];
  40. for (var i = 0; i < fieldWidth; i++)
  41. {
  42. for (var j = 0; j < fieldHight; j++)
  43. {
  44. list.Add(original[i, j]);
  45. }
  46. }
  47. list.Sort();
  48. double t = GetT(whitePixelsFraction, fieldWidth, fieldHight, list);
  49. return GetColorsFilter(t, original);
  50. }
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement