zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#,图像二值化(11)——全局阈值的百分比优化算法(Percentage Thresholding)及其源程序

c#算法 优化 11 图像 及其 全局 百分比
2023-09-11 14:15:48 时间

Doyle于1962年提出的P-Tile (即P分位数法)可以说是最古老的一种阈值选取方法。该方法根据先验概率来设定阈值,使得二值化后的目标或背景像素比例等于先验概率,该方法简单高效,但是对于先验概率难于估计的图像却无能为力

对于先验概率不知道的情况下不建意选用此方法,除了已知目标或背景像素比例等于先验概率,更简单的讲就是在找阈值前已经知道,目标或背景占整幅图比率多少。

编程函数实现可以输入两数,hist直方图数据、Tile先验概率,用两重for循环,第一层用于统计总像素数,第二层用于判断是否达到了Tile先验概率,达到就返回。

支持函数请阅读:

C#,图像二值化(02)——用于图像二值化处理的一些基本图像处理函数之C#源代码https://blog.csdn.net/beijinghorn/article/details/128425984?spm=1001.2014.3001.5501阈值,灰度平均值计算方法,将图像上所有像素值相加除以总像素数。可以通过直接访问图像内存地址,用两重for循环计算得到,这种方法可行,但不够系统化、模块化,一般不这样使用,更多的计算方法先得到图像的直方图数组,然后再for循环统计计算得到平均值。

 二值算法综述请阅读:

C#,图像二值化(01)——二值化算法综述与二十三种算法目录https://blog.csdn.net/beijinghorn/article/details/128425225?spm=1001.2014.3001.5502

支持函数请阅读:

C#,图像二值化(02)——用于图像二值化处理的一些基本图像处理函数之C#源代码https://blog.csdn.net/beijinghorn/article/details/128425984?spm=1001.2014.3001.5502

using System;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Collections;
using System.Collections.Generic;
using System.Drawing.Imaging;

namespace Legalsoft.Truffer.ImageTools
{
    public static partial class BinarizationHelper
    {
        #region 灰度图像二值化 全局算法 百分比阈值 

        /// <summary>
        /// 百分比阈值
        /// </summary>
        /// <param name="histogram">灰度图像的直方图</param>
        /// <param name="ratio">背景在图像中所占的面积百分比</param>
        /// <returns></returns>
        public static int Percentage_Threshold(int[] histogram, double ratio = 0.5)
        {
            int amount = (int)(Histogram_Sum(histogram) * ratio);
            double sum = 0.0;
            for (int i = 0; i < 256; i++)
            {
                sum += histogram[i];
                if (sum >= amount) { return i; }
            }
            return -1;
        }

        public static void Percentage_Algorithm(byte[,] data)
        {
            int[] histogram = Gray_Histogram(data);
            int threshold = Percentage_Threshold(histogram);
            Threshold_Algorithm(data, threshold);
        }

        #endregion
    }
}

灰度图转二值图阈(阀)值方法介绍
灰度平均值的阈值 将一幅图所有像素值加总除以总像素个数,得到平均值,这种方法最简单但有很多盲区,一般用来做初始分割的猜测值。 谷底最小值的阈值 用于具有明显双峰直方图的图像,其寻找双峰的谷底作为阈值,但是该方法不一定能获得阈值,对于那些具有平坦的直方图或单峰图像,该方法不合适。 百分比阈值 Doyle于1962年提出的P-Tile (即P分位数法)可以说是最古老的一种阈值选取方法。该方法根据先验概率来设定阈值,使得二值化后的目标或背景像素比例等于先验概率,该方法简单高效,但是对于先验概率难于估计的图像却无能为力。...
阈值-灰度平均值计算方法
阈值,灰度平均值计算方法,将图像上所有像素值相加除以总像素数。可以通过直接访问图像内存地址,用两重for循环计算得到,这种方法可行,但不够系统化、模块化,一般不这样使用,更多的计算方法先得到图像的直方图数组,然后再for循环统计计算得到平均值。...

灰度共生矩
灰度共生矩阵,指的是一种通过研究灰度的空间相关特性来描述纹理的常用方法。  1973年Haralick等人提出了用灰度共生矩阵来描述纹理特征。         由于纹理是由灰度分布在空间位置上反复出现而形成的,因而在图像空间中相隔某距离的两像素之间会存在一定的灰度关系,即图像中灰度的空间相关特性。...
图像相关系数计算方法
图像相似度计算主要用于对于两幅图像之间内容的相似程度进行打分,根据分数的高低来判断图像内容的相近程度,又灰度图像的像素可看作二维矩阵,两个大小相等的二维矩阵,可以计算其相关系数...

颜色相关图(ColorCorrelogram)
主要思想是用颜色对相对于距离的分布来描述信息,它反映了像素对的空间相关性,以及局部像素分布和总体像素分布的相关性,并且容易计算,特征范围小,效果好。...
颜色特征匹配–直方图相交法
颜色也是描述图像内容的一个重要特征,常用的颜色空间有RGB和HSI空间。颜色信息可用颜色统计直方图来表式。这样可以方便计算,不同图像间的颜色特征匹配可借助计算直方图间的距离来度量。...

计算直方图方法
直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。 简单来讲的话,以8位灰度图为例256个灰度等级,直方图统计就是计算相同像素值总数,C语言中可以用一维数组来暂存直方图数据(long hist[256]). 具体统计方法也比较简单,有图像地址pimage,图像宽度imageWidth,图像高度imageHeight,有了已经这三个数后,可以用两重for循环得到直方图数据hist[]。...

图像逻辑运算
逻辑运算运用到图像中计算方法,也就是将两张图像对齐叠加,对每个点进行逻辑运算,得到一张新图(也可以将结果直接储回原图)。图像的逻辑运算主要应用于图像增强、图像识别、图像复原和区域分割等领域,与代数运算不同,逻辑运算既关注图像像素点的数值变化.又重视位变换的情况.以下写个例子:两张图A 图B,分别做4种基本逻辑运算,...