精华内容
下载资源
问答
  • 图像形态学开闭运算 图像形态学开闭运算 1. 前言 2. 图像形态学开闭运算描述 3. 代码实现 1. 前言 数学形态学(Mathematical Morphology)是分析几何形状和结构的数学方法,是建立在集合代数基础上,用集合...

    图像形态学开闭运算

    1. 前言

    数学形态学(Mathematical Morphology)是分析几何形状和结构的数学方法,是建立在集合代数基础上,用集合方法定量描述几何结构的科学。
    数学形态学是由一组形态学的代数运算算子组成。常见的形态学运算算子有:腐蚀(Erosion)、膨胀(Delation)、开(Opening)和闭(Closing)。通过组合这些算子可以实现对图像进行分割、特征提取、边界检测、图像滤波、图像增强和图像恢复等。

    2. 图像形态学开闭运算描述

    • 1). 开运算:设X是原始图像,S是结构图像,则集合X被结构S做开运算,记为:XSX \circ S,其定义为:XS=(XS)SX \circ S = (X \ominus S) \oplus S,即图像X先被S腐蚀后,再被S膨胀。
    • 2). 闭运算:设X是原始图像,S是结构图像,则集合X被结构S做闭运算,记为:XSX \cdot S,其定义为:XS=(XS)SX \cdot S = (X \oplus S) \ominus S,即图像X先被S膨胀后,再被S腐蚀。

    3. 代码实现

    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    import copy
    import imageio
    
    def rgb2gray(src):
        assert(len(src.shape) == 3)
        assert(src.shape[2] == 3)
        srcf = np.float32(src)
        dstf = np.dot(src[..., :3], [0.299, 0.587, 0.114])
        dstf = np.clip(dstf,0,255).astype(np.uint8)
        return dstf
    
    # 腐蚀
    def erode(img,k=5):
        assert img.ndim == 2
        h, w = img.shape
        new = copy.copy(img)
        for pixel_y in range(0, h):
            for pixel_x in range(0, w):
                # extract 5x5 pixel area
                roi = img[max(0, pixel_y - k//2): min(h, pixel_y + k//2),
                          max(0, pixel_x - k//2): min(w, pixel_x + k//2)]
                # set the centre pixel to the max value
                new[pixel_y][pixel_x] = np.amax(roi)
        return new
    
    # 方块结构膨胀
    def dilate(img,k=5):
        assert img.ndim == 2
        h, w = img.shape
        new = copy.copy(img)
        for pixel_y in range(0, h):
            for pixel_x in range(0, w):
                # extract 5x5 pixel area
                roi = img[max(0, pixel_y - k//2): min(h, pixel_y + k//2),
                          max(0, pixel_x - k//2): min(w, pixel_x + k//2)]
                # set the centre pixel to the minimum value
                new[pixel_y][pixel_x] = np.amin(roi)
        return new
    
    def opening(src,k=5):
        dst = erode(src,k)
        dst = dilate(dst,k)
        return dst
    
    def closing(src,k=5):
        dst = dilate(src,k)
        dst = erode(dst,k)
        return dst
    
    def main():
        gray = imageio.imread('resources/images/pcb.bmp')
        # gray = rgb2gray(src)
        dst = opening(gray,k=5)
        dst2 = closing(gray,k=5)
        plt.subplot(1,3,1)
        plt.imshow(gray,'gray')
        plt.title('Source')
        plt.xticks([])
        plt.yticks([])
    
        plt.subplot(1,3,2)
        plt.imshow(dst,'gray')
        plt.title('opening:5x5 Square')
        plt.xticks([])
        plt.yticks([])
    
        plt.subplot(1,3,3)
        plt.imshow(dst2,'gray')
        plt.title('closing:5x5 Square')
        plt.xticks([])
        plt.yticks([])
    
        plt.show()
    
    if __name__ == "__main__":
        main()
    

    程序运行结果:
    在这里插入图片描述

    展开全文
  • 形态学可以定义为在语素的帮助下对标识符的构成进行研究,语素是承载含义的基本语言单位。语素有两种类型:词根和词缀。 词根也被称之为自由语素,他们可以在不添加词缀的情况下而存在,比如unbelievable,这里的...

    下面将包含以下的主题:词干提取器、词性还原、

    一、形态学简介

    形态学可以定义为在语素的帮助下对标识符的构成进行研究,语素是承载含义的基本语言单位。语素有两种类型:词根和词缀。

    词根也被称之为自由语素,他们可以在不添加词缀的情况下而存在,比如unbelievable,这里的believe被称为词根,这里的un

    和able被称为词缀

    二、理解词干提取器

    词干提取被定义为一个通过除单词中的词缀以获取词干的过程。以单词raining为例,词干提取器通过从raining中去除词缀来返回词根rain。

    有几种返回词干提取器的方法:PorterStemmer()、LancasterStemmer()、RegexpStemmer()、SnowballStemmer()

    import nltk
    from nltk.stem import PorterStemmer
    stemmerporter = PorterStemmer()
    print(stemmerporter.stem('working'))
    print(stemmerporter.stem('happiness'))

    import nltk
    from nltk.stem import LancasterStemmer
    stemmerlan=LancasterStemmer()
    print(stemmerlan.stem('working'))
    print(stemmerlan.stem('happiness'))

    import nltk
    from nltk.stem import RegexpStemmer
    stemmerregexp=RegexpStemmer('ing')
    print(stemmerregexp.stem('working'))
    print(stemmerregexp.stem('happiness'))
    print(stemmerregexp.stem('pairing'))

    import nltk
    from nltk.stem import SnowballStemmer
    print(SnowballStemmer.languages)
    spanishstemmer=SnowballStemmer('spanish')
    print(spanishstemmer.stem('comiendo'))
    frenchstemmer=SnowballStemmer('french')
    print(frenchstemmer.stem('manger'))

    三、理解词型还原

    import nltk
    from nltk.stem import WordNetLemmatizer
    lemmatizer_output=WordNetLemmatizer()
    print(lemmatizer_output.lemmatize('working'))
    print(lemmatizer_output.lemmatize('working',pos='v'))
    print(lemmatizer_output.lemmatize('works'))

    #词干还原和词型还原的区别

    import nltk
    from nltk.stem import PorterStemmer
    from nltk.stem import WordNetLemmatizer
    stemmer_output=PorterStemmer()
    print(stemmer_output.stem('happiness'))
    lemmatizer_output=WordNetLemmatizer()
    print(lemmatizer_output.lemmatize('happiness'))

    四、为非英文语言开发词干提取器

    Polyglot是一个提供被称作morfessor模型的软件,该模型用于从标识符中获取语素。在Polyglot的词汇帮助下,已经使用了涉及不同语言的50000个标识符的morfessor模型

    展开全文
  • 语言形态学分类法

    2017-01-30 02:43:00
    学习语言,除了语音、词汇,比较重要的一点就是语法,即句子的组织结构。当然,语法这个东西,是对语言结构的经验总结,除了“人工语言”都是现有语言后有语法。对于语言里的语法现象,语法规律是辅助于非母语人群...

    学习语言,除了语音、词汇,比较重要的一点就是语法,即句子的组织结构。当然,语法这个东西,是对语言结构的经验总结,除了“人工语言”都是现有语言后有语法。对于语言里的语法现象,语法规律是辅助于非母语人群学习这门语言的。而对于把语言作为一门科学来研究的话,语法必然是一个研究重点。对于想学习多门外语的人来说,整体上了解并比较各门语言的语法特征,是非常有益的。

     

    分类,是重要的科学方法。

    现今全世界现存的语言约6900种,类似于生物分类的界门纲目科属种,世界上的语言也需要被分类,而且语言和生物一样都是演化而来的,这种层级分类也暗示着亲缘关系。依据语言的亲缘分支分类法,大致为语门>语系>语族>语支>语言>方言,实际上分类层次可能更多更复杂。世界上的主要语系有汉藏语系、印欧语系、乌拉尔语系、阿尔泰语系、亚非语系(闪含语系)、达罗毗荼语系、高加索语系、南岛语系(或称马来-波利尼西亚语系)、南亚语系以及其他一些语群和语言。世界比较流行的多为印欧语系,印欧语系下面又分为罗尔曼语族、罗曼语族、斯拉夫语族等若干语族。相对于这些自然语言,人工语言不会随人类的语言文化而发展,但是,它们在被创造之后,却可能因而产生特定的影响力,随着人类文化如真实语言一样地演进。比较著名的人工语言有世界语。

    今天要说的语言的形态学分类,是依据语言的形态变化进行分类的语言,它不考虑语言之间的亲缘关系。对应生物上的概念,就是形态学上的性状,其相似的原因可能是由于拥有共同祖先,也可能是“趋同进化”的结果。这种语言的形态分类法,首先可以将语言分为分析语综合语,综合语又可以细分为黏着语屈折语多式综合语

    首先是分析语综合语的区别,在分析语大多数的每一单词所含的不自由语素较少,而综合语每一单词所含的不自由语素较多。换言之,分析语无、或较少“合成词”,而综合语中有大量的“合成词”。语素是能表示意思的最低单位,语素和词不同,有许多的语素不能够单独地构成词。在英文单词unbreakable中有三个语素组成,分别是:un-(不自由语素)、break(自由语素)、-able(不自由语素)。而在现代汉语中,“不易破损”该词由四个语素组成,分别是:皆为自由语素的“不”、“易”、“破”、“损”。分析语的另一个特点是,分析语并不对语素进行变化,而是以语序表示文法关系。

    不存在纯粹的分析语,也不存在纯粹的综合语,这可以看作语言的两种性质,分析性和综合性。现代汉语更多的具有分析语的特性,我们的句子的语序一般不能颠倒,比如“我吃苹果”不能说成“苹果吃我”,说成“我苹果吃”也很无厘头,“吃苹果我”倒是像网上流行的山东人爱说倒装句的段子,另一方面汉语里基本没有变位和变格;而英语更倾向于综合语(屈折语),比如它的人称代词有主格和宾格的变化,我(主格I,宾格ME),动词也有基本也有单数第三人称的变位(比如do、did、dose);相比而言,俄语的综合语(屈折语)的特性更明显,有名词和形容词大都有都有六个变格,动词大都有变格,因为有着较为完备的语素变化(变格变位),语序显得很不重要,比如我爱你(Я люблю тебя)三个词怎么变化位置,都没有歧义,语法上都是允许的,所以说话的时候可以根据强调的内容变化语序。

    一般认为,英语等很多语言都朝着分析语的方向发展,从上面的分析中可以看出来。而很多专家认为我们的汉语也可能使从综合语演化过来的,从文言文到白话文也稍微有一点意味在里边(这一论断是我的个人看法,我觉得文言文里很多倒装,和英语相似)。我们现在学俄语,老师强调变位变格,对语序也有建议,也可以看作是向分析语进化的细节吧。除了汉语语族下的语言外,彝语、壮语、苗语、越南语、泰语、缅甸语、巴布亚皮钦语等都是分析语的例子;而现代英语和保加利亚语的语法则朝向分析语的方向发展。目前全球最通行的语言多是分析语倾向的,因为文法相对较为易学易懂,容易通行,如中文、英文皆是,特别是英文,经过英格兰、美东、美西的辗转迁徙后已经由综合语渐趋转向分析语。

    屈折语和同为综合语的黏着语之间的分别在于屈折语的词素趋向连在一起,较为难以分割,屈折语的一个词缀经常同时表达多种意思,而黏着语的一个词缀一般倾向于只表达一种意思。不过黏着语和屈折语之间的界限很多时候并不明显,因此可将黏着语和屈折语之间的关系视为一个连续体,而很多语言则落于“完全的”黏着语和“高度的”屈折语之间。拉丁语、俄语、德语及波兰语等是颇为典型的屈折语,而大多数的印欧语系语言在一定程度上都算是屈折语。

    日语、韩语、芬兰语、满语、蒙古语、土耳其语、匈牙利语、泰米尔语等为典型的黏着语。斯瓦希里语、德语、世界语和缅甸语等也部分地被认为有黏着语的性质。黏着语的特点也比较明显,比较好玩,

    土耳其语,是不是很像我们程序写代码时喜欢用的变量名,

     

     

     

     

    最后,看一下语言类型学的其他分类。

     

     

    本文观点主要基于维基百科。

    转载于:https://www.cnblogs.com/liulele/p/6357865.html

    展开全文
  • 形态学可以定义为使用语素对单词的构成进行研究,语素是具有意义的最小语言单位。1、形态学简介 语素有两种类型:词根和词缀(后缀、前缀、中缀和环缀)。词根可以独立存在,词缀不能以自由的形式存在。2、理解词干...

        形态学可以定义为使用语素对单词的构成进行研究,语素是具有意义的最小语言单位。

    1、形态学简介

        语素有两种类型:词根和词缀(后缀、前缀、中缀和环缀)。词根可以独立存在,词缀不能以自由的形式存在。

    2、理解词干提取器

         通过去除单词中的词缀以获取词干的过程。为了提高信息检索的准确性,搜索引擎大多会使用词干提取来获取词干并将器存储为索引词。搜索引擎使用具有相同含义的同义词,这可能是一种被称为异文合并的查询扩展。

    >>> from nltk.stem import PorterStemmer
    >>> stemmerporter = PorterStemmer()
    >>> stemmerporter.stem('working')
    u'work'
    >>> stemmerporter.stem('happiness')
    u'happi'

    Lancaster的词干提取算法

    >>> from nltk.stem import LancasterStemmer
    >>> stemmerlan = LancasterStemmer()
    >>> stemmerlan.stem('working')
    'work'
    >>> stemmerlan.stem('happiness')
    u'happy'
    

    RegexpStemmer词干提取

    >>> from nltk.stem import RegexpStemmer
    >>> stemmerregexp = RegexpStemmer('ing')
    >>> stemmerregexp.stem('working')
    u'work'
    

    3、理解词性还原

         是一个用不同的词类将一个单词转换为某种形式的过程。

    >>> from nltk.stem import WordNetLemmatizer
    >>> lemmatizer_output = WordNetLemmatizer()
    >>> lemmatizer_output.lemmatize('working')
    'working'
    >>> lemmatizer_output.lemmatize('working',pos='v')
    u'work'
    >>> lemmatizer_output.lemmatize('works')
    u'work'

    词干提取和词形还原之间的区别:

    >>> from nltk.stem import PorterStemmer
    >>> stemmer_output=PorterStemmer()
    >>> stemmer_output.stem('happiness')
    u'happi'
    >>> from nltk.stem import WordNetLemmatizer
    >>> lemmatizer_output=WordNetLemmatizer()
    >>> lemmatizer_output.lemmatize('happiness')
    'happiness'

    4、为非英文语言开发词干提取器

        Polyglot是一个用于提供被称作morfessor模型的软件

    5、形态分析器

        在给定标识符后缀信息的前提下,形态分析可以认为是一个从标识符中获取语法信息的过程。形态分析器可以认为是一个程序,负责对给定的输入标识符进行形态学分析。它分析给定的标识符并生成诸如性别、数、词类等形态信息作为输出。代码有点问题

    # -*- coding: utf-8
    import nltk
    import enchant
    s = enchant.Dict("en_US")
    tok = []
    
    def tokenize(st1):
    	if not st1:return
    	for j in xrange(len(st1), -1, -1):
    		if s.check(st1[0:j]):
    			tok.append(st1[0:j])
    			st1 = st1[j:]
    			tokenize(st1)
    			break
    tokenize("itismyfavouritebook")
    print(tok)

    6、形态生成器

         是执行形态生成任务的程序。可以认为形态生成是与形态分析相反的任务。这里,如果给出单词在数、类别、词干等方面的描述,就可检索出原始的单词。例如,如果词根为go,词性为动词,时态为现在时,并且如果它与第三人称和单数主语一起出现。

    https://github.com/kmike/pymorphy2  

    7、搜索引擎

      PyStemmer 1.0.1由可用于执行信息检索任务和构建搜索引擎的Snowball词干提取算法组成。


    展开全文
  • 图像形态学处理概述 数学形态学(Mathematical Morphology)是分析几何形状和结构的数学方法,是建立在集合代数基础上,用集合方法定量描述几何结构的科学。 数学形态学是由一组形态学的代数运算算子组成。常见的...
  • 数学形态学(Mathematical Morphology)是分析几何形状和结构的数学方法,是建立在集合代数基础上,用集合方法定量描述几何结构的科学。 数学形态学是由一组形态学的代数运算算子组成。常见的形态学运算算子有:腐蚀...
  • 形态学骨架化及重建 形态学骨架化及重建 1. 前言 2. 形态学骨架化及重建描述 3. 代码实现 1. 前言 数学形态学(Mathematical Morphology)是分析几何形状和结构的数学方法,是建立在集合代数基础上,用集合...
  • 数学形态学是由一组形态学的代数运算算子组成。常见的形态学运算算子有:腐蚀(Erosion)、膨胀(Delation)、开(Opening)和闭(Closing)。通过组合这些算子可以实现对图像进行分割、特征提取、边界检测、图像滤波、...
  • 数学形态学是由一组形态学的代数运算算子组成。常见的形态学运算算子有:腐蚀(Erosion)、膨胀(Delation)、开(Opening)和闭(Closing)。通过组合这些算子可以实现对图像进行分割、特征提取、边界检测、图像滤波、...
  • 文章目录形态学图像处理1 膨胀和腐蚀1.1 膨胀1.2 腐蚀2 开操作和闭操作3 击中或击不中变换4 一些基本的形态学算法4.1 边界提取4.2 区域填充4.3 连通...霍夫曼变换进行整体处理总结形态学图像处理数学形态学语言是集合论...
  • 形态学图像处理

    2018-09-18 15:36:10
    数学形态学语言是集合论,集合表示图像中的对象。 在形态学中,集合的反射和平移广泛用来表达基于 结构元(SE) 的操作:研究一幅图像中感兴趣特性所用的小集合或子图像。 特别注意结构元的原点。 腐蚀 腐蚀缩小...
  • 数学形态学是由一组形态学的代数运算算子组成。常见的形态学运算算子有:腐蚀(Erosion)、膨胀(Delation)、开(Opening)和闭(Closing)。通过组合这些算子可以实现对图像进行分割、特征提取、边界检测、图
  • 本章介绍自然语言处理中的形态学,主要涉及词的构成、有限状态转录机以及用于模拟形态规则的一些共同使用的计算工具。 形态剖析是发现在词中所包含的连续语素的过程(如,cats剖析为cat+N+PL)。 英语主要使用前缀...
  • 形态学运算 本次试验研究OpenCV形态学运算中像素值是如何变化的,以下图为研究对象。 开运算 试验结果: 开运算可以消除图像部分噪点。如,原图左上角噪点(像素值为2,8,11等)经开运算后被消除了,像素值都...
  • 第三章 形态学:在实践中学习 3.1形态学简介 形态学可以定义为在语素的帮助下对标识符的构造进行研究。 语素是承载意义的基本语言单位。有两种类型: 词根(自由语素) 词缀(粘着语素) 语言可分为三类:...
  • 目录: 1.了解膨胀腐蚀的基本原理 2.练习实现图像的膨胀腐蚀操作 3.练习实现图像的开操作和闭操作 4.练习实现图像的顶帽和黑帽操作 形态学转换 ...数学形态学语言是集合论。形态学为大量的图像...
  • 数学形态学(Mathematical morphology) 的语言是集合论。同样,形态学为大量的图像处理问题提供了一种一致的有力方法。数字形态学中的集合表示图像中的不同对象。例如,在二值图像中,所有的黑色像素的集合是图像...
  • 什么是形态学处理 • 形态学本来是生物学的一个分支,用来研究动植 物的形态与结构。...• 数学形态学语言是集合论,通常应用于只有黑 白二色的二值图像,多数情况下,黑色表示前 景,白色表示背景
  • 使用matlab语言,实现灰度图像的形态学处理,包括腐蚀、膨胀及顶帽变换操作。
  • 数学形态学的数学基础和所用的语言是集合论。 数学形态学的应用可以简化图像数据,保持它们的基本的形状特征,并除去不想干的结构 。数学形态学的算法 具有天然的并行实现的结构。 数学形态学的基本运算有膨胀和...
  • 基于形态学的自适应图像去噪算法,用MATLAB语言编写。
  • 形态学研究屈折语中词的构成规则。 英语、德语等时屈折语。 汉语是孤立语。 日语是黏着语。 词通常是语素组成,语素是语言中最小的意义单位。 英语中的语素 语素可以分成两大类:词干(提供词的主要意义)和词缀...
  • 【图像处理】-020 形态学操作   图像的形态学(morphology)...  数学形态学语言是集合论。数学形态学中的集合表示图像中的对象。例如,在二值图像中,所有白色像素的集合是该图像的一个完整的形态学描述。在二...
  • 13、OpenCV形态学操作——膨胀与腐蚀

    千次阅读 2021-01-26 13:46:05
    OpenCV形态学操作——膨胀与腐蚀一、学习目标二、原理简介三、膨胀与腐蚀的综合案例 一、学习目标 了解膨胀和腐蚀的原理 使用OpenCV的相关API实现膨胀和腐蚀 ...形态学图像处理的数学基础和所用语言是集合论。形

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 486
精华内容 194
热门标签
关键字:

形态学语言学