public void applyZoneHistogramFilter(int n, int k)
        {
            int[] filteredRed   = FilterController.HistogramZoneFilter(this.redHistogramArray, this.redArray, imageModel.getWidth() * imageModel.getHeight(), n, k);
            int[] filteredGreen = FilterController.HistogramZoneFilter(this.greenHistogramArray, this.greenArray, imageModel.getWidth() * imageModel.getHeight(), n, k);
            int[] filteredBlue  = FilterController.HistogramZoneFilter(this.blueHistogramArray, this.blueArray, imageModel.getWidth() * imageModel.getHeight(), n, k);

            Bitmap image;

            if (imageModel.getFilteredImage() != null)
            {
                image = imageModel.getFilteredImage();
            }
            else
            {
                image = imageModel.getBaseImage();
            }

            this.undoBuffer.push(image);

            Bitmap bmp = new Bitmap(imageModel.getWidth(), imageModel.getHeight());
            Color  tmpColor;

            for (int x = 0; x < imageModel.getWidth(); x++)
            {
                for (int y = 0; y < imageModel.getHeight(); y++)
                {
                    tmpColor = Color.FromArgb(filteredRed[x * imageModel.getHeight() + y], filteredGreen[x * imageModel.getHeight() + y], filteredBlue[x * imageModel.getHeight() + y]);
                    bmp.SetPixel(x, y, tmpColor);
                    this.redArray[x * imageModel.getHeight() + y]   = filteredRed[x * imageModel.getHeight() + y];
                    this.greenArray[x * imageModel.getHeight() + y] = filteredGreen[x * imageModel.getHeight() + y];
                    this.blueArray[x * imageModel.getHeight() + y]  = filteredBlue[x * imageModel.getHeight() + y];
                }
            }

            imageModel.setFilteredImage(bmp);
            baseView.setBaseImageFromBitmap(bmp);
            imageModel.setCIEImage(setCIEImage(bmp));
            RGBModel[,] rgbImage = convertToRGB(imageModel.getCIEImage());
            histogramView.setBaseImage(imageModel.getFilteredImage());

            histogramView.setRedHistogramChannel(redArray, imageModel.getHeight() * imageModel.getWidth());
            histogramView.setGreenHistogramChannel(greenArray, imageModel.getHeight() * imageModel.getWidth());
            histogramView.setBlueHistogramChannel(blueArray, imageModel.getHeight() * imageModel.getWidth());

            channelView.setFilteredChannelImages(bmp, setRedChannel(rgbImage), setGreenChannel(rgbImage), setBlueChannel(rgbImage));
        }