WPF:图像处理(五)迭代法
来源:未知 责任编辑:责任编辑 发表时间:2014-05-20 18:33 点击:次
[csharp]
using System;
namespace Splash.Imaging
{
/// <summary>
/// 图像处理:迭代法二值化阈值计算方法
/// </summary>
public static partial class Binarize
{
/// <summary>
/// 迭代法计算阈值
/// </summary>
/// <param name="grayArray">灰度数组</param>
/// <returns>二值化阈值</returns>
public static Int32 IterativeThreshold(Byte[,] grayArray)
{ // 建立统计直方图
Int32[] Histogram = new Int32[256];
Array.Clear(Histogram, 0, 256); // 初始化
foreach (Byte b in grayArray)
{
Histogram[b]++; // 统计直方图
}
// 总的质量矩和图像点数
Int32 SumC = grayArray.Length; // 总的图像点数
Int32 SumU = 0;
for (Int32 i = 1; i < 256; i++)
{
SumU += i * Histogram[i]; // 总的质量矩
}
// 确定初始阈值 www.2cto.com
Int32 MinGrayLevel = Array.FindIndex(Histogram, NonZero); // 最小灰度值
Int32 MaxGrayLevel = Array.FindLastIndex(Histogram, NonZero); // 最大灰度值
using System;
namespace Splash.Imaging
{
/// <summary>
/// 图像处理:迭代法二值化阈值计算方法
/// </summary>
public static partial class Binarize
{
/// <summary>
/// 迭代法计算阈值
/// </summary>
/// <param name="grayArray">灰度数组</param>
/// <returns>二值化阈值</returns>
public static Int32 IterativeThreshold(Byte[,] grayArray)
{ // 建立统计直方图
Int32[] Histogram = new Int32[256];
Array.Clear(Histogram, 0, 256); // 初始化
foreach (Byte b in grayArray)
{
Histogram[b]++; // 统计直方图
}
// 总的质量矩和图像点数
Int32 SumC = grayArray.Length; // 总的图像点数
Int32 SumU = 0;
for (Int32 i = 1; i < 256; i++)
{
SumU += i * Histogram[i]; // 总的质量矩
}
// 确定初始阈值 www.2cto.com
Int32 MinGrayLevel = Array.FindIndex(Histogram, NonZero); // 最小灰度值
Int32 MaxGrayLevel = Array.FindLastIndex(Histogram, NonZero); // 最大灰度值
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>