1 模糊集理论

模糊集理论,也称为模糊集合论,或简单地称为模糊集,1965年美国学者扎德在数学上创立了一种描述模糊现象的方法—模糊集合论。这种方法把待考察的对象及反映它的模糊概念作为一定的模糊集合,建立适当的隶属函数,通过模糊集合的有关运算和变换,对模糊对象进行分析。模糊集合论以模糊数学为基础,研究有关非精确的现象。客观世界中,大量存在着许多亦此亦彼的模糊现象。

Fuzzy set theory, also known as fuzzy set theory, or simply called fuzzy sets, was founded by American scholar Zade in 1965 to describe fuzzy phenomena mathematically - fuzzy set theory. This method takes the object to be investigated and the fuzzy concept reflecting it as a certain fuzzy set, establishes an appropriate membership function, and analyzes the fuzzy object through relevant operations and transformations of the fuzzy set. Based on fuzzy mathematics, fuzzy set theory studies the imprecise phenomena. In the objective world, there are a lot of fuzzy phenomena.

2 模糊集理论算法论文

这是篇很古老的论文中的算法,发表与1994年,是清华大学黄良凯(Liang-kai Huang) 所写,因此国外一些论文里和代码里称之为Huang's fuzzy thresholding method。虽然古老也很简单,但是其算法的原理还是值得学习的。

该论文的原文可从此处下载:

《Image thresholding by minimizing the measure of fuzziness》

该论文结合了当时处于研究热潮的模糊集理论,提出了一种具有较好效果的图像二值化算法,本文主要是对其进行简单的翻译和注释,并提供了测试C#代码。

本文介绍了一种新的基于最小化输入图像模糊性度量的图像阈值处理方法。阈值方法中的隶属函数用于表示像素与其所属区域(对象或背景)之间的特征关系。此外,基于模糊性度量,定义了一个模糊范围,以在该范围内找到合适的阈值。该方法的原理易于理解,可以直接扩展到多级阈值。通过使用具有各种类型直方图的测试图像,说明了新方法的有效性。实验结果表明,该方法在两级和三级阈值处理中表现出良好的性能。

This paper introduces a new image thresholding method based on minimizing the measures of fuzziness of an input image. The membership function in the thresholding method is used to denote the characteristic relationship between a pixel and its belonging region (the object or the background). In addition, based on the measure of fuzziness, a fuzzy range is defined to find the adequate threshold value within this range. The principle of the method is easy to understand and it can be directly extended to multilevel thresholding. The effectiveness of the new method is illustrated by using the test images of having various types of histograms. The experimental results indicate that the proposed method has demonstrated good performance in bilevel and trilevel thresholding.

3 模糊集理论算法源程序

二值算法综述请阅读:

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


namespace Legalsoft.Truffer.ImageTools
{public static partial class BinarizationHelper{#region 灰度图像二值化 全局算法 模糊集理论算法 /// <summary>/// 基于模糊集理论的一种图像二值化算法的原理、实现效果及代码/// https://www.cnblogs.com/Imageshop/p/3302850.html/// </summary>/// <param name="histogram"></param>/// <returns></returns>public static int Huang_Fuzzy_Threshold(int[] histogram){int left = Histogram_Left(histogram);int right = Histogram_Right(histogram);int[] S = new int[right + 1];int[] W = new int[right + 1];S[0] = histogram[0];for (int Y = left > 1 ? left : 1; Y <= right; Y++){S[Y] = S[Y - 1] + histogram[Y];W[Y] = W[Y - 1] + Y * histogram[Y];}double[] Smu = new double[right + 1 - left];for (int Y = 1; Y < Smu.Length; Y++){double mu = 1 / (1 + (double)Y / (right - left));Smu[Y] = -mu * Math.Log(mu) - (1 - mu) * Math.Log(1 - mu);}int Threshold = -1;double BestEntropy = Double.MaxValue;for (int Y = left; Y <= right; Y++){double Entropy = 0.0;int mu = (int)Math.Round((double)W[Y] / S[Y]);for (int X = left; X <= Y; X++){Entropy += Smu[Math.Abs(X - mu)] * histogram[X];}mu = (int)Math.Round((double)(W[right] - W[Y]) / (S[right] - S[Y]));for (int X = Y + 1; X <= right; X++){Entropy += Smu[Math.Abs(X - mu)] * histogram[X];}if (BestEntropy > Entropy){BestEntropy = Entropy;Threshold = Y;}}return Threshold;}public static void Huang_Fuzzy_Algorithm(byte[,] data){int[] histogram = Gray_Histogram(data);int threshold = Huang_Fuzzy_Threshold(histogram);Threshold_Algorithm(data, threshold);}#endregion}
}

4 模糊集算法的计算效果

C#,图像二值化(18)——全局阈值的模糊集理论算法(Huang Thresholding)与源程序相关推荐

  1. 图像二值化处理(全局阈值 自适应阈值 手动阈值操作以及直方图画法)

    文章目录 图像二值化处理 二值化原理 API介绍 手动设置阈值 均值法 迭代法 自动设置阈值 直方图法 全局阈值法 OTSU法 三角形法 自适应阈值法 API 绘制图像直方图 图像二值化处理 二值化原 ...

  2. 图像二值化_三角阈值法

    前言 一.三角阈值法是什么? 二.算法原理 1.算法 总结 参考文献 前言 图像二值化有很多方法,比较经典的为OTSU,三角阈值法,本文主要想一探三角阈值法的算法原理. 一.三角阈值法是什么? 三角阈 ...

  3. java 用遗传算法解决图像二值化问题 找阈值

    image类对图像处理 import java.awt.image.BufferedImage; public class Image {public int h; //高public int w; ...

  4. 【图像处理】——图像的二值化操作及阈值化操作(固定阈值法(全局阈值法——大津法OTSU和三角法TRIANGLE)和自适应阈值法(局部阈值法——均值和高斯法))

    目录 一.二值化的概念(实际上就是一个阈值化操作) 1.概念: 2.实现方法 3.常用方法 二.阈值类型 1.常见阈值类型(主要有五种类型) (1)公式描述 (2)图表描述 2.两种特殊的阈值算法(O ...

  5. OTSU_图像二值化分割阈值的算法

    简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...

  6. 自适应阈值图像二值化

    一.二值化 关于二值化的介绍,以前的博客中有介绍,这里就不再描述了,二值化介绍:二值化分为固定阈值二值化和自适应阈值二值化,固定阈值二值化方式是我们常用的二值化方式,需要自己摸索一个经验阈值,不断调整 ...

  7. 图像二值化(选择阈值)

    目录 1. 双峰法 2. 大津法(Otsu法或最大类间方差法) 1. 双峰法 在一些简单的图像中,物体的灰度分布比较有规律,背景与各个目标在图像 的直方图各自形成一个波峰,即区域与波峰一一对应,每两个 ...

  8. 二值化图像的欧拉数_Android OpenCV(八):图像二值化

    图像二值化 简介 图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程.在数字图像处理中,二值图像占有非常重要的 ...

  9. OpenCV-Python 图像二值化

    OpenCV-Python 图像二值化 一.什么是图像二值化 二.图像二值化 Ⅰ先获取阈值: Ⅱ根据阈值去二值化图像 ⅢOpenCV中的二值化方法 三.全局阈值函数cv2.threshold · 函数 ...

最新文章

  1. LeetCode Range Addition II
  2. js解析url query_js如何解析url
  3. 日本专家给出的存钱高招(图)
  4. Oracle容灾数据库-恢复演练方案
  5. Redis源码阅读-Adlist双向链表
  6. WebStorm 自定义字体+颜色+语法高亮+导入导出用户设置
  7. 【SpringBoot_ANNOTATIONS】生命周期 04 BeanPostProcessor 后置处理器
  8. JS 打印 data数据_用D3.js 十分钟实现字符跳动效果
  9. 流编辑器 SED 十分钟入门全教程
  10. kubernetes-dashboard v2.0.0-beta3 部署
  11. ZOC7 Terminal 首次安装无法 上传/下载文件
  12. 通过js实现页面布局
  13. spring cloud服务之间的调用Fegin
  14. JavaScript 记时(Timing)
  15. 数据分析入门——Matplotlib数据可视化
  16. python2 出现\xef\xbb\xbf…的问题
  17. ORACLE 取唯一数据
  18. 教学软件推荐-极域数字语音教室
  19. 小程序开发+weuiwxss
  20. 蓝牙模块教程|一文看懂BLE蓝牙模块应用开发,快速入门指南

热门文章

  1. 你真的了解浮点型吗?float double浮点型深度解刨
  2. 43-为什么要训练数据集与测试数据集
  3. oracle关键字 转译,ORACLE中ESCAPE关键字用法 换字符用法
  4. Vue中实现图标选择器
  5. java中实现word(doc、docx)中完美提取文字、表格为结构化数据
  6. 在SQL Server 2008R2中附加质疑的数据库
  7. CSS学习笔记(详细,不定期更新)
  8. [历朝通俗演义-蔡东藩]
  9. Leetcode-892. 三维形体的表面积
  10. 北上广深杭30K试题:如何分配JVM内存模型?