本文整理汇总了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;
}
}