예제 #1
0
        public ImageDataBuilder(string imagePath, IRegionCreationStrategy regionCreationStrategy, IRegionCreationStrategy subRegionCreationStrategy, IImageLoader imageLoader)
        {
            _imagePath = imagePath;
            _regionCreationStrategy = regionCreationStrategy;
            _imageLoader            = imageLoader;

            _averageGreyByRegionCalculator = new AverageGreyByRegionCalculator(subRegionCreationStrategy);
        }
 public RecursiveDirectoryFillProvider(string sourceDirectory, IRegionCreationStrategy fillRegionCreationStrategy, IRegionCreationStrategy averageGryRegionCreationStrategy, IImageLoader imageLoader, string searchString = "*.bmp")
 {
     _sourceDirectory                  = sourceDirectory;
     _searchString                     = searchString;
     _fillRegionCreationStrategy       = fillRegionCreationStrategy;
     _averageGryRegionCreationStrategy = averageGryRegionCreationStrategy;
     _imageLoader = imageLoader;
 }
예제 #3
0
        public MosaicBuilderFactory(int holeWidth, int holeHeight, int averageDarkWidth, int averageDarkHeight, int fillHorizontalStep, int fillVerticalStep)
        {
            _imageLoader = new FlyWeightImageLoader(1000);
            _sourceRegionCreationStrategy      = new NonOverlappingRegionCreationStrategy(holeWidth, holeHeight);
            _averageDarkRegionCreationStrategy = new NonOverlappingRegionCreationStrategy(averageDarkWidth, averageDarkHeight);
            _fillRegionCreationStrategy        = new FixedSizeRegionCreationStrategy(holeWidth, holeHeight, fillHorizontalStep, fillVerticalStep);
            IImageComparer imageComparer = new TotalImageDifferenceComparer(_imageLoader);
            IFilterStrategy <ImageMatch> matchFilterMatchStrategy = new MatchFilterStrategy();

            _imageMatchProviderFactory = new ImageMatchProviderFactory(
                new ImageDataMatchingStrategy(imageComparer),
                new FillFilterStrategyFactory(),
                new Filter <ImageMatch>(matchFilterMatchStrategy));
        }
예제 #4
0
 public MosaicBuilder(
     IImageLoader imageLoader,
     IRegionCreationStrategy sourceRegionCreationStrategy,
     IRegionCreationStrategy fillRegionCreationStrategy,
     IRegionCreationStrategy averageGreyRegionCreationStrategy,
     ImageMatchProviderFactory imageMatchProviderFactory,
     IImageDataSorter imageDataSorter)
 {
     _imageLoader = imageLoader;
     _sourceRegionCreationStrategy      = sourceRegionCreationStrategy;
     _fillRegionCreationStrategy        = fillRegionCreationStrategy;
     _averageGreyRegionCreationStrategy = averageGreyRegionCreationStrategy;
     _imageMatchProviderFactory         = imageMatchProviderFactory;
     _imageDataSorter = imageDataSorter;
 }
예제 #5
0
 public StatByRegionCalculator(IRegionCreationStrategy regionCreationStrategy, Func <ImageChunk, T> statCalculatorFunc)
 {
     _regionCreationStrategy = regionCreationStrategy;
     _statCalculatorFunc     = statCalculatorFunc;
 }
예제 #6
0
 public IEnumerable <ImageChunk> GetSubChunks(IRegionCreationStrategy regionCreationStrategy)
 {
     return(regionCreationStrategy.GetRegions(_region).Select(subRegion => new ImageChunk(_bitmap, subRegion)));
 }
 public HistogramByRegionCalculator(IRegionCreationStrategy regionCreationStrategy)
     : base(regionCreationStrategy, HistogramCalculator.CaluclateHistogram)
 {
 }
예제 #8
0
 public AverageGreyByRegionCalculator(IRegionCreationStrategy regionCreationStrategy)
     : base(regionCreationStrategy, AverageGreyCalculator.CaluclateAverageDark)
 {
 }