private void PreviewImageUpdate()
        {
            try
            {
                //get lut for stretching - preview image
                var lut = HistogramTools.GetLutStretching(int.Parse(TextBoxMin.Text), int.Parse(TextBoxMax.Text));
                //set new image after histogram stretching
                PreviewImage.Source = HistogramTools.StretchHistogram(lut, _option);
                //recalculate histogram after stretching
                CalculateHistograms();
                //update polygon graphs for visual representation of histograms
                switch (_option)
                {
                case 0:
                    HistogramRed.Points = HistogramWindow.ConvertToPointCollection(HistogramR);
                    break;

                case 1:
                    HistogramRed.Points = HistogramWindow.ConvertToPointCollection(HistogramG);
                    break;

                case 2:
                    HistogramRed.Points = HistogramWindow.ConvertToPointCollection(HistogramB);
                    break;

                case 3:
                    HistogramRed.Points = HistogramWindow.ConvertToPointCollection(HistogramU);
                    break;
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.StackTrace);
            }
        }
        private void OkButtonClick(object sender, RoutedEventArgs e)
        {
            //close the window
            Close();
            //perform lut calculation for main image
            var lut = HistogramTools.GetLutStretching(int.Parse(TextBoxMin.Text), int.Parse(TextBoxMax.Text));

            //update image with newer one after histogram stretching
            MainWindow.ModifiedImgSingleton.Source = HistogramTools.StretchHistogram(lut, _option);
            //recalculate histograms for updated image
            HistogramTools.CalculateHistograms();
        }