private double GetMetrics(Image <Pixel32> fipImage, Image <Pixel32> iplImage) { if (fipImage.Width != iplImage.Width || fipImage.Height != iplImage.Height) { throw new Exception("Result images have different size. Something went really wrong"); } int margin = 2; int marginWidth = fipImage.Width - 2 * margin; int marginHeight = fipImage.Height - 2 * margin; return(ErrorMetrics.MSE(fipImage, iplImage, margin, margin, marginWidth, marginHeight)); }
private async void LaunchMetrics(Image <Pixel32> originalImage, Image <Pixel32> resultImage) { view.Busy = true; try { var result = await Task.Run(() => { var mse = ErrorMetrics.MSE(originalImage, resultImage); var psnr = ErrorMetrics.PSNR(originalImage, resultImage); return(Tuple.Create(mse, psnr)); }); view.ShowMetrics(result.Item1, result.Item2); } catch (Exception e) { view.ShowException(e); } finally { view.Busy = false; } }