小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

基于Matlab的數(shù)字圖像處理

 學(xué)海無(wú)涯GL 2015-09-17

概述

    我們已經(jīng)知道,線性空間濾波即為掩膜矩陣和圖像矩陣的卷積/相關(guān)運(yùn)算。本質(zhì)上來(lái)說(shuō),是像素點(diǎn)值與像素點(diǎn)鄰域像素點(diǎn)值之間的一種特殊運(yùn)算關(guān)系,因?yàn)槠溥\(yùn)算規(guī)則為鄰域像素點(diǎn)與對(duì)應(yīng)掩膜系數(shù)相乘后相加的線性運(yùn)算,故稱(chēng)之為線性空間濾波。
    如果這種基于鄰域的運(yùn)算是非線性的,對(duì)圖像的每個(gè)像素點(diǎn)都進(jìn)行這種非線性運(yùn)算(濾波),即為非線性空間濾波。
    本文首先會(huì)將線性空間濾波與非線性空間濾波做一個(gè)簡(jiǎn)單的對(duì)比,然后介紹matlab中幾種非線性空間濾波的函數(shù)。

與線性空間濾波對(duì)比        

    為了使得每一個(gè)像素都有相同的可計(jì)算鄰域,我們需要對(duì)圖像矩陣進(jìn)行填充。具體填充概念見(jiàn)線性空間濾波一文。
    圖中:灰色數(shù)字部分:0填充部分;
              黑色數(shù)字部分:圖像矩陣;
              綠色數(shù)字部分:掩膜系數(shù)或劃定鄰域范圍;

            

Matlab 中非線性空間濾波函數(shù)

    先介紹兩個(gè)執(zhí)行常規(guī)非線性濾波的函數(shù):nlfilter 和 colfilt。當(dāng)然, 一些常用的非線性濾波器可以通過(guò)其他MATLAB和IPT函數(shù)實(shí)現(xiàn),我們主要介紹colfilt。
    其中colfilt因其出色的執(zhí)行速度,是進(jìn)行非線性濾波操作的最好選擇。首先介紹colfilt,然后將MATLAB中對(duì)nlfilter的描述,最后介紹另一種比較常用的統(tǒng)計(jì)排序?yàn)V波器。
    colfilt是基于列的濾波方式,具體如下: 

colfilt       

函數(shù)語(yǔ)法:
B = colfilt(A,[m n],block_type,@fun,paramerters)
A:圖像矩陣;
[m n]:鄰域范圍;
block_type:鄰域塊的處理方式,有如下兩值可供選擇:distinct 和 sliding
           二者通過(guò)fun運(yùn)算返回的值不同,通過(guò)colfilt最終返回的矩陣也不同;詳情如下:

@fun:函數(shù)句柄,調(diào)用外部寫(xiě)好的函數(shù)fun進(jìn)行鄰域像素處理;
parameters:fun所需的參數(shù) 。
函數(shù)原理:
        鄰域和圖像例舉:
        領(lǐng)域大小為3x3圖像大小為:5x5
        fun例舉:  為均值函數(shù)。
    大致過(guò)程為:m x n大小領(lǐng)域矩陣中心從左至右,從上到下依次滑過(guò)M x N大小的圖像的每一個(gè)像素點(diǎn)。鄰域矩陣將其所包圍范圍內(nèi),所有像素點(diǎn)的亮度值挑選出來(lái)。colfilt函數(shù)調(diào)用im2col函數(shù)將之轉(zhuǎn)換為列向量。如此一來(lái),鄰域矩陣中心每經(jīng)過(guò)一個(gè)像素點(diǎn),就產(chǎn)生一個(gè)mn維度的向量,M x N 大小的圖像就會(huì)產(chǎn)生MN個(gè)這樣的向量。我們得到一個(gè)mn x MN 的新的矩陣。對(duì)該矩陣每一列代入fun中運(yùn)算,產(chǎn)生一個(gè)MN維的向量,colfilt調(diào)用col2im 函數(shù)將MN維向量重新還原為M x N 的矩陣,完成運(yùn)算。
一、 零填充:                  
                    
二、生成矩陣:
         


nlfilter

    B = nlfilter(A,[M N],FUN)
    針對(duì)圖像A的每一個(gè)M x N 滑動(dòng)塊應(yīng)用函數(shù)FUN。FUN是一個(gè)接收M x N矩陣作
    為輸入并且返回一個(gè)標(biāo)量;
        C = FUN(X)
    FUN必須為一個(gè)函數(shù)句柄;
    C是M x N 塊X的中心像素的輸出值;
    nlfilter為圖像A中的每一個(gè)像素調(diào)用函數(shù)FUN。
    B = nlfilter(A,'indexed',...) 將A作為索引圖像來(lái)處理,如果A 為單精度型或者雙
    精度型則使用1來(lái)對(duì)A進(jìn)行填充,如果A 是邏輯型、uint8或uint16型圖像則使用0
    來(lái)進(jìn)行填充。
    B = nlfilter(A,'indexed',...)
    數(shù)據(jù)類(lèi)型支持
    -------------
    輸入圖像A可以是FUN支持的任意數(shù)據(jù)類(lèi)型。B的類(lèi)型取決于FUN的輸出類(lèi)型。
    如果A是灰度圖像,其可以為任意數(shù)字類(lèi)型或者邏輯型。如果A是索引圖形,其
    可以是邏輯、uint8、uint16、單精度型或者、雙精度型。
    注意
    -------
    在處理大圖片時(shí)nlfilter 需要花費(fèi)大量的時(shí)間。在大多數(shù)情況下colfilt 函數(shù)可
    更快的處理相同的操作。    
    (本節(jié)內(nèi)容為從MATLAB help 中翻譯所得。)

orderfilt2

    其相應(yīng)是基于對(duì)鄰域中所包含的像素進(jìn)行排序,然后使用排序結(jié)果的值來(lái)代替中心像素值。
    函數(shù)語(yǔ)法:
    g = ordfilt2(f , order , domain)   
    使用鄰域的一組排序元素的第order 個(gè)元素來(lái)替代f中的每個(gè)元素,而領(lǐng)域矩陣所選擇用來(lái)排序的元素,由domain中的非零元素指定。   
    百分位:我們將排序元素中第一個(gè)元素稱(chēng)為第0個(gè)百分位,最后一個(gè)元素為第100個(gè)百分位。  
    最小濾波器:取order 為0個(gè)百分位的排序?yàn)V波器;
    中值濾波器:取order 為50個(gè)百分位的排序?yàn)V波器; (降低圖像椒鹽噪聲的有效工具)
    最大濾波器:取order 為100個(gè)百分位的排序?yàn)V波器;

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多