/// <summary>
        /// Boundary Extraction Filter
        /// </summary>
        /// <param name="sourceBitmap">Set source Bitmap</param>
        /// <param name="se">Set boolean</param>
        /// <param name="filterType">Set Filter type</param>
        /// <param name="applyBlue">Apply Blue</param>
        /// <param name="applyGreen">Apply Green</param>
        /// <param name="applyRed">Apply Red</param>
        /// <returns></returns>
        public static System.Drawing.Bitmap BoundaryExtractionFilter(this System.Drawing.Bitmap sourceBitmap,
                                                                     bool[,] se,
                                                                     BoundaryExtractionFilterType
                                                                     filterType,
                                                                     bool applyBlue  = true,
                                                                     bool applyGreen = true,
                                                                     bool applyRed   = true)
        {
            System.Drawing.Bitmap resultBitmap = null;

            if (filterType == BoundaryExtractionFilterType.BoundaryExtraction)
            {
                resultBitmap =
                    sourceBitmap.BoundaryExtraction(se, applyBlue,
                                                    applyGreen, applyRed);
            }
            else if (filterType == BoundaryExtractionFilterType.BoundarySharpen)
            {
                resultBitmap =
                    sourceBitmap.BoundarySharpen(se, applyBlue,
                                                 applyGreen, applyRed);
            }
            else if (filterType == BoundaryExtractionFilterType.BoundaryTrace)
            {
                resultBitmap =
                    sourceBitmap.BoundaryTrace(se, applyBlue,
                                               applyGreen, applyRed);
            }

            return(resultBitmap);
        }
        /// <summary>
        /// Boundary Trace
        /// </summary>
        /// <param name="sourceBitmap">Set source Bitmap</param>
        /// <param name="se">Set boolean</param>
        /// <param name="applyBlue">Apply Blue</param>
        /// <param name="applyGreen">Apply Green</param>
        /// <param name="applyRed">Apply Red</param>
        /// <returns></returns>
        public static System.Drawing.Bitmap BoundaryTrace(this System.Drawing.Bitmap sourceBitmap,
                                                          bool[,] se,
                                                          bool applyBlue  = true,
                                                          bool applyGreen = true,
                                                          bool applyRed   = true)
        {
            System.Drawing.Bitmap resultBitmap = sourceBitmap.BoundaryExtraction(se, applyBlue,
                                                                                 applyGreen,
                                                                                 applyRed);

            resultBitmap = sourceBitmap.SubtractImage(resultBitmap);

            return(resultBitmap);
        }
        /// <summary>
        /// Boundary Sharpen
        /// </summary>
        /// <param name="sourceBitmap">Set source Bitmap</param>
        /// <param name="se">Set boolean</param>
        /// <param name="applyBlue">Apply Blue</param>
        /// <param name="applyGreen">Apply Green</param>
        /// <param name="applyRed">Apply Red</param>
        /// <returns></returns>
        public static System.Drawing.Bitmap BoundarySharpen(this System.Drawing.Bitmap sourceBitmap,
                                                            bool[,] se,
                                                            bool applyBlue  = true,
                                                            bool applyGreen = true,
                                                            bool applyRed   = true)
        {
            System.Drawing.Bitmap resultBitmap = sourceBitmap.BoundaryExtraction(se, applyBlue,
                                                                                 applyGreen,
                                                                                 applyRed);

            resultBitmap = sourceBitmap.MorphologyOperation(se,
                                                            MorphologyOperationType.Dilation, applyBlue,
                                                            applyGreen,
                                                            applyRed).AddImage(resultBitmap);

            return(resultBitmap);
        }