public void TryFillHoles(Matrix <float> normalizedImageMatrix, IBoundarySearcher boundarySearcher, ColorInterpolatorBase colorInterpolator) { m_missingPixels.All(missingPixel => { normalizedImageMatrix[missingPixel.Row, missingPixel.Column] = ImageColorsService.InterpolateColor(missingPixel, boundarySearcher.BoundaryPixels, colorInterpolator); return(true); }); }
public HoleFiller Initialize(IMissingPixelsService missingPixelsService, IBoundarySearcher boundarySearcher, string imageUri) { m_imageUri = imageUri; InitializeBoundarySearcher(boundarySearcher); InitializeMissingPixelsService(missingPixelsService); InitializeImageMatrix(); return(this); }
public bool TryAddMissingPixel(IBoundarySearcher boundarySearcher, ImageRegion imageRegion, Matrix <float> normalizedImageMatrix, int column, int row, float color) { bool foundMissingPixel = false; if (color == ImageColorsService.WHITE) { Pixel missing = new Pixel(imageRegion, column, row) { Color = color, }; m_missingPixels.Add(missing); foundMissingPixel = true; boundarySearcher.TryAddBoundaryPixels(imageRegion, normalizedImageMatrix, column, row); } return(foundMissingPixel); }
private void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { m_boundarySearher?.Dispose(); m_missingPixelsService?.Dispose(); m_normalizedImageMatrix?.Dispose(); } m_boundarySearher = null; m_missingPixelsService = null; m_normalizedImageMatrix = null; disposedValue = true; } }
private void InitializeBoundarySearcher(IBoundarySearcher boundarySearcher) { m_boundarySearher = boundarySearcher; m_boundarySearher.Initialize(); }