Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections.Generic;
- namespace Recognizer
- {
- public static class ThresholdFilterTask
- {
- public static double[,] GetColorsFilter(double t, double[,] original){
- var fieldWidth = original.GetLength(0);
- var fieldHight = original.GetLength(1);
- var colorsFilter = new double[fieldWidth, fieldHight];
- for (var i = 0; i < fieldWidth; i++)
- {
- for (var j = 0; j < fieldHight; j++)
- {
- if (original[i, j] >= t)
- colorsFilter[i, j] = 1.0;
- else colorsFilter[i, j] = 0.0;
- }
- }
- return colorsFilter;
- }
- public static double GetT(double whitePixelsFraction, int fieldWidth, int fieldHight, List<double> list){
- var sumWhitePixels = (int)((whitePixelsFraction) * fieldWidth * fieldHight);
- double t;
- if (sumWhitePixels > 0){
- t = list[fieldWidth * fieldHight - sumWhitePixels];
- }
- else{
- t = double.MaxValue;
- }
- return t;
- }
- public static double[,] ThresholdFilter(double[,] original, double whitePixelsFraction)
- {
- var list = new List<double>();
- var fieldWidth = original.GetLength(0);
- var fieldHight = original.GetLength(1);
- var colorsFilter = new double[fieldWidth, fieldHight];
- for (var i = 0; i < fieldWidth; i++)
- {
- for (var j = 0; j < fieldHight; j++)
- {
- list.Add(original[i, j]);
- }
- }
- list.Sort();
- double t = GetT(whitePixelsFraction, fieldWidth, fieldHight, list);
- return GetColorsFilter(t, original);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement