当前位置: 首页>>代码示例>>C#>>正文


C# Int32.Max方法代码示例

本文整理汇总了C#中System.Int32.Max方法的典型用法代码示例。如果您正苦于以下问题:C# Int32.Max方法的具体用法?C# Int32.Max怎么用?C# Int32.Max使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Int32的用法示例。


在下文中一共展示了Int32.Max方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetGuidePoint

        /// <summary>
        /// 获取验证码图片的baseline和meanline在X轴上的坐标
        /// </summary>
        public static void GetGuidePoint()
        {
            int[] pointArray = new int[ImgBoundary.rightUpPoint.Y];          
			
			int i = 0, j = 0;

            //找到每一列从字符底部到字符顶部遇到的第一个字符像素的X坐标值
            for (j = ImgBoundary.leftDownPoint.Y; j < ImgBoundary.rightUpPoint.Y; j++)
            {
                pointArray[j] = 0;

                for (i = ImgBoundary.rightUpPoint.X; i > ImgBoundary.leftDownPoint.X; i--)
                {
                    if (0 == BinaryArray[i,j])
                    {
                        pointArray[j] = i;
                        break;
                    }
                }
            }

            //找出上述X坐标值中数量最多的X值作为baseline
            Int32[] Histogram = new Int32[ImgBoundary.rightUpPoint.Y];
            Array.Clear(Histogram, 0, ImgBoundary.rightUpPoint.Y);     
            foreach (Int32 b in pointArray)
            {
                if(b != 0)
                {
                    Histogram[b]++;                
                }
            }
            
            //根据研究对象的特征,高于baseline三个像素以上的区域才会被认为是在baseline以下区域,因此将得到的坐标值+3个像素点作为baseline的值
            GuidePoint.X = Array.IndexOf(Histogram, Histogram.Max());// +3;

            //找到每一列从字符顶部到字符底部遇到的第一个字符像素的X坐标值
            for (j = ImgBoundary.leftDownPoint.Y; j < ImgBoundary.rightUpPoint.Y; j++)
            {
                pointArray[j] = 0;

                for (i = ImgBoundary.leftDownPoint.X; i < ImgBoundary.rightUpPoint.X; i++)
                {
                    if (0 == BinaryArray[i,j])
                    {
                        pointArray[j] = i;
                        break;
                    }
                }
            }

            //找到上述X值中数量最多的点作为meanline的参考点
            Array.Clear(Histogram, 0, ImgBoundary.rightUpPoint.X);     // 初始化
			
            foreach (Int32 b in pointArray)
            {
                if(b != 0)
                {
                    Histogram[b]++;                 // 统计直方图
                }
            }

            //小于meanline 2个像素的会被认为是meanline以上的区域,故直接将meanline减2个像素
            Int32 midValIndex = Array.IndexOf(Histogram, Histogram.Max());

            int tmpVal = ImgBoundary.leftDownPoint.X + (ImgBoundary.rightUpPoint.X - ImgBoundary.leftDownPoint.X) / 5;

            //防止meanline以上没有有效像素,故并不直接以计算值作为guidePoint		
			if(midValIndex > tmpVal)
			{
				GuidePoint.Y = midValIndex;
			}
			else
			{
				GuidePoint.Y = tmpVal;
			}
        }
开发者ID:luis-wang,项目名称:merged-characters-segmentation,代码行数:79,代码来源:CaptchaSegment.cs


注:本文中的System.Int32.Max方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。