使用Emgu对图像进行灰度拉伸

来源:互联网 发布:微信棋牌游戏源码 编辑:程序博客网 时间:2024/04/29 03:24

Emgu项目使得我们可以在C#.NET中方便地使用OpenCV的类库。在使用过程中发现关于灰度拉伸的函数有点缺失,于是自己写了一个:

        /// <summary>        /// 对图像进行灰度拉伸        /// </summary>        /// <param name="img">原灰度图像</param>        /// <returns>经过灰度拉伸的灰度图像</returns>        public static Image<Gray, Byte> GrayStretch(Image<Gray, Byte> img)        {            //取最小值最大值            double[] minValues;            double[] maxValues;            Point[] minLocations;            Point[] maxLocations;            img.MinMax(out minValues, out maxValues, out minLocations, out maxLocations);            double max = maxValues[0];            double min = minValues[0];            //  灰度拉伸            if (max != min)            {                return (img - (int)min).Mul(255 / (max - min));            }            else            {                return img * 0 + min;            }        }


0 0