public static IFilter Create(string filterKey) { IFilter result = null; switch (filterKey) { case "Median": result = new MedianFilter(); break; case "Monochrome": result = new MonochromeFilter(); break; case "Sharpen": result = new SharpenFilter(); break; case "Boundary": result = new Boundary(); break; case "Otzu": result = new Otcu(); break; } return result; }
private void btn_Sharpen_Click(object sender, EventArgs e) { var sw = new Stopwatch(); var initialImage = (Bitmap)Image.FromFile(openFileDialog1.FileName); Bitmap reconstructedImage = (Bitmap)Image.FromFile(openFileDialog1.FileName);; if (pictureBox2.Image != null) { var brokenImage = (Bitmap)pictureBox2.Image; sw.Start(); reconstructedImage = SharpenFilter.Sharpen(brokenImage, kernelSize); pictureBox3.Image = reconstructedImage; } else { sw.Start(); var brokenImage = SharpenFilter.Sharpen(initialImage, kernelSize); pictureBox2.Image = brokenImage; } sw.Stop(); Filter = ImageHelper.Filter.Sharpen; //MessageBox.Show(sw.Elapsed.TotalSeconds.ToString()); MessageBox.Show($"{ImageHelper.GetPSNR(initialImage, reconstructedImage)}"); }
private void btn_Wiener_Click(object sender, EventArgs e) { var sw = new Stopwatch(); var initialImage = (Bitmap)pictureBox1.Image; var greyImage = ImageHelper.ToGray(initialImage); pictureBox1.Image = greyImage; var brokenImage = new Bitmap(greyImage); switch (Filter) { case ImageHelper.Filter.Gauss: brokenImage = GaussianFilter.Blur(greyImage, kernelSize); break; case ImageHelper.Filter.Sharpen: brokenImage = SharpenFilter.Sharpen(greyImage, kernelSize); break; case ImageHelper.Filter.MotionLeftToRight: brokenImage = MotionFilter.Motion(greyImage, kernelSize, Direction.LeftToRight); break; case ImageHelper.Filter.MotionRightToLeft: brokenImage = MotionFilter.Motion(greyImage, kernelSize, Direction.RightToLeft); break; default: break; } pictureBox2.Image = brokenImage; var coreImage = ImageHelper.GetCoreImage(ImageHelper.ToGray(brokenImage), Filter); pictureBox3.Image = coreImage; sw.Start(); var reconstructedImage = WienerFilter.Filter(ImageHelper.ToGray(brokenImage), Filter); pictureBox4.Image = reconstructedImage; sw.Stop(); MessageBox.Show($"{ImageHelper.GetPSNR(greyImage, reconstructedImage)}"); //MessageBox.Show(sw.Elapsed.TotalSeconds.ToString()); }
public IEnumerable <IFindResult> Find(IImage image) { //var bitmap = (BitmapImage) image; //bitmap.FromBitmap(this.OtsuFilter(bitmap.ToBitmap())); var indencity = this.GetIntensityFrom(image); indencity = new SharpenFilter().Filter(indencity); indencity = new EdgeFilter().Filter(indencity); var histogram = this.CalculateLineHistogram(indencity); var borders = this.DeterminateYCoordinates(histogram, indencity.GetLength(0)); var frames = this.DeterminatesWords(borders, this.GetIntensityFrom(image)); return(frames.Select(f => new FindResult(f.X, f.Y, f.Height, f.Width))); }
private void sharpenFilter_Click(object sender, RoutedEventArgs e) { if (imageHandler != null) { // TODO Background worker new Thread(() => { SharpenFilter filter = new SharpenFilter(); imageHandler.ApplyFilter(image => filter.ApplyFilter(image)); Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => { filteredImage.Source = BitmapLoader.loadBitmap(imageHandler.getFiltered()); })); }).Start(); } }
public IEnumerable<IFindResult> Find(IImage image) { //var bitmap = (BitmapImage) image; //bitmap.FromBitmap(this.OtsuFilter(bitmap.ToBitmap())); var indencity = this.GetIntensityFrom(image); indencity = new SharpenFilter().Filter(indencity); indencity = new EdgeFilter().Filter(indencity); var histogram = this.CalculateLineHistogram(indencity); var borders = this.DeterminateYCoordinates(histogram, indencity.GetLength(0)); var frames = this.DeterminatesWords(borders, this.GetIntensityFrom(image)); return frames.Select(f => new FindResult(f.X, f.Y, f.Height, f.Width)); }
public static unsafe extern bool vlImageResize(byte* lpSourceRGBA8888, byte* lpDestRGBA8888, uint uiSourceWidth, uint uiSourceHeight, uint uiDestWidth, uint uiDestHeight, MipmapFilter resizeFilter, SharpenFilter sharpenFilter);
public static unsafe extern bool vlImageGenerateMipmaps(uint uiFace, uint uiFrame, MipmapFilter mipmapFilter, SharpenFilter sharpenFilter);
public static unsafe extern bool vlImageGenerateAllMipmaps(MipmapFilter mipmapFilter, SharpenFilter sharpenFilter);
public unsafe static bool vlImageResize(byte* lpSourceRGBA8888, byte* lpDestRGBA8888, uint uiSourceWidth, uint uiSourceHeight, uint uiDestWidth, uint uiDestHeight, MipmapFilter ResizeFilter, SharpenFilter SharpenFilter) { return IsWow64() ? x64.vlImageResize(lpSourceRGBA8888, lpDestRGBA8888, uiSourceWidth, uiSourceHeight, uiDestWidth, uiDestHeight, ResizeFilter, SharpenFilter) : x86.vlImageResize(lpSourceRGBA8888, lpDestRGBA8888, uiSourceWidth, uiSourceHeight, uiDestWidth, uiDestHeight, ResizeFilter, SharpenFilter); }
public unsafe static bool vlImageGenerateAllMipmaps(MipmapFilter MipmapFilter, SharpenFilter SharpenFilter) { return IsWow64() ? x64.vlImageGenerateAllMipmaps(MipmapFilter, SharpenFilter) : x86.vlImageGenerateAllMipmaps(MipmapFilter, SharpenFilter); }
// // Helper routines. // public unsafe static bool vlImageGenerateMipmaps(uint uiFace, uint uiFrame, MipmapFilter MipmapFilter, SharpenFilter SharpenFilter) { return IsWow64() ? x64.vlImageGenerateMipmaps(uiFace, uiFrame, MipmapFilter, SharpenFilter) : x86.vlImageGenerateMipmaps(uiFace, uiFrame, MipmapFilter, SharpenFilter); }
public unsafe static extern bool vlImageGenerateAllMipmaps(MipmapFilter MipmapFilter, SharpenFilter SharpenFilter);
private void ApplyFilter(FilterType filterType, int windowSize = 0) { Invoke(new ArgUtils.Action(delegate { pictureBox2.Image = null; })); IFilter filter = null; IBinarization binarization = null; switch (filterType) { case FilterType.AdaptiveBinarization: binarization = new AdaptiveBinarizatoinFilter(UpdateProgtessBar); break; case FilterType.BinarizationByOtsu: binarization = new BinarizationByOtsu(UpdateProgtessBar); break; case FilterType.Gaus: filter = new GausFilter(windowSize, false, UpdateProgtessBar); break; case FilterType.Median: filter = new Filters.MedianFilter(windowSize, false, UpdateProgtessBar); break; case FilterType.Gray: filter = new GrayFilter(); break; case FilterType.Edge: filter = new Filters.EdgeFilter(); break; case FilterType.Sharpen: filter = new SharpenFilter(); break; } var bitmap = GetInitialBitmap(); Bitmap result = null; Invoke(new ArgUtils.Action(delegate { progressBar1.Value = 0; })); if (filter != null) { result = filter.GetFilteredImage(bitmap); } else if (binarization != null) { result = binarization.GetBinaryImage(bitmap); } Invoke(new ArgUtils.Action(delegate { if (progressBar1.Value < 100) { progressBar1.Value = 100; } pictureBox2.Image = result; })); }