<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  DSP系統(tǒng)和硬件開發(fā)討論區(qū)  (http://www.hufushizhe.com/bbs/list.asp?boardid=5)
    ----  李現(xiàn)路:圖像增強處理算法大全  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=5&id=81)

    --  作者:admin
    --  發(fā)布時間:2009-12-3 11:38:07
    --  李現(xiàn)路:圖像增強處理算法大全
     

    李現(xiàn)路:圖像增強處理算法大全


    算法一、圖像反相算法

    將圖像按像素進行求反,取得類似照相底片效果。求反處理的圖像與原始圖“黑白顛倒”, 可以看清原始圖中灰黑區(qū)域的情況。求反的圖像一般用于數(shù)字圖像的初步處理。
       設(shè)DA表示輸入圖像的灰度,DB表示輸入圖像的灰度。灰度變換方程為:

    DB=255-DA

    在視頻顯示任務(wù)的循環(huán)中,程序首先將視頻數(shù)據(jù)從輸入緩沖區(qū)讀入自己開設(shè)的臨時

    圖像處理緩沖區(qū),再在臨時圖像處理緩沖區(qū)上進行處理,處理后的數(shù)據(jù)再輸出到輸出緩沖區(qū)。

    圖像的采集分為奇偶場采集,即將圖像的奇數(shù)行作為一場數(shù)據(jù),偶數(shù)行作為另

    一場數(shù)據(jù)。對像素處理時,一般需分為奇數(shù)行與偶數(shù)行處理。在下面的程序中奇數(shù)行是第一場數(shù)據(jù)放在臨時圖像處理緩沖區(qū)的前半部。


    /********具體處理反相的代碼如下:**********************************/

    /*進行圖像反色處理*/

    void videoReverse()

    {

    int i,j;

    //方框內(nèi)奇數(shù)行

    for(i=intALines;i<intDLines;i++) //行數(shù)

    {

        for(j=intAPixels;j<intDPixels;j++) //像素個數(shù)/每行

        {

                *(Uint8 *)(tempYbuffer + i*numPixels + j) =  0xFF-*(Uint8 *)(tempYbuffer + i*numPixels + j);

        }        

    }

    //方框內(nèi)偶數(shù)行

    for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//行數(shù)

    {

        for(j=intAPixels;j<intDPixels;j++) //像素個數(shù)/每行

        {      

                *(Uint8 *)(tempYbuffer + i*numPixels + j) =  0xFF-*(Uint8 *)(tempYbuffer + i*numPixels + j);

        }  

    }      

    }


    算法二、圖像灰度處理算法


    灰度圖(gray-scale imgc5)是指將圖像按照灰度等級的數(shù)目來劃分后形成的圖像。灰度模式最多使用256級灰度來表現(xiàn)圖像,圖像中的每個像素有一個0(黑色)到255(白色)之間的亮度值。實現(xiàn)灰度圖現(xiàn)實的方法比較簡單,將UV分量的值賦為0X80,Y分量值保持不變即可。

    以下是處理算法的具體函數(shù),用下面的算法處理函數(shù)把上面完整程序里的相關(guān)算法處理函數(shù)替換掉,就可實現(xiàn)圖像處理的效果。

    /*消去彩色*/

    void removeColor()

    {

    int i,j;

    //方框內(nèi)奇數(shù)行

    for(i=intALines;i<intDLines;i++)//行數(shù)

    {

        for(j=intAPixels/2;j<intDPixels/2;j++) //像素數(shù)/每行

        {

                *(Uint8 *)(tempCbbuffer + i * (numPixels >> 1) + j) =  0x80;

                *(Uint8 *)(tempCrbuffer + i * (numPixels >> 1) + j) =  0x80;

        }        

    }

    //方框內(nèi)偶數(shù)行

    for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//行數(shù)

    {

        for(j=intAPixels/2;j<intDPixels/2;j++) //像素數(shù)/每行

        {      

                *(Uint8 *)(tempCbbuffer + i * (numPixels >> 1) + j) =  0x80;

                *(Uint8 *)(tempCrbuffer + i * (numPixels >> 1) + j) =  0x80;

        }  

    }      

    }


    算法三、圖像閾值變換算法


    灰度的閾值變換可以將一幅灰度圖像轉(zhuǎn)換成黑白二值圖像。它的操作過程是先由用戶指

    定一個閾值,如果圖像中期權(quán)像素的灰度值小于該閾值,則將該像素的灰度值設(shè)置為0,否則灰度值設(shè)置為255。

    以下是處理算法的具體函數(shù),用下面的算法處理函數(shù)把上面完整程序里的相關(guān)算法處理函數(shù)替換掉,就可實現(xiàn)圖像處理的效果。

    /*****進行閾值分割處理*********/

    void threshold()

    {

    int i,j;

    //方框內(nèi)奇數(shù)行

    for(i=intALines;i<intDLines;i++)//行數(shù)

    {

        for(j=intAPixels;j<intDPixels;j++) //像素數(shù)/每行

        {

            *(Uint8 *)(tempYbuffer + i*numPixels + j) = *(Uint8 *)(tempYbuffer + i*numPixels + j)<intThreshold?0x00:0xFF;

        }  

    }

    //方框內(nèi)偶數(shù)行

    for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//行數(shù)

    {

        for(j=intAPixels;j<intDPixels;j++) //像素數(shù)/每行

        {      

            *(Uint8 *)(tempYbuffer + i*numPixels + j) = *(Uint8 *)(tempYbuffer + i*numPixels + j)<intThreshold?0x00:0xFF;  

            }

    }      

    }


    算法四、圖像灰度線性變換算法


    灰度的線性變換就是將圖像中所有的點的灰度按照線性灰度變換函數(shù)進行變換。該線性

    灰度變換函數(shù)是一個一維線性函數(shù):

    灰度變換方程為:

    dB=fA*dA+fB


    1.   如果fA<0,暗區(qū)域?qū)⒆兞粒羺^(qū)域?qū)⒆儼担c運算完成了圖像求補運算

    2.   當(dāng)fA>1時,輸出圖像的對比度將增大

    3.   當(dāng)fA<1時,輸出圖像的對比度將減小

    4.   當(dāng)fA=1且fB≠0時,操作僅使所有像素的灰度值上移或下移,其效果是使整個圖像更暗或更亮;

    5.   如果fA<0,暗區(qū)域?qū)⒆兞粒羺^(qū)域?qū)⒆儼担c運算完成了圖像求補運算。

    6.   特殊情況下,當(dāng)fA=1,fB=0時,輸出圖像和輸入圖像相同

    7.   當(dāng)fA=1,fB=255時,輸出圖像的灰度正好反轉(zhuǎn)。


    以下是處理算法的具體函數(shù),用下面的算法處理函數(shù)把上面完整程序里的相關(guān)算法處理函數(shù)替換掉,就可實現(xiàn)圖像處理的效果。


    /***進行灰度線性變換處理*******/

    void linerTrans()

    {

    int i,j,intTemp;

    //方框內(nèi)奇數(shù)行

    for(i=intALines;i<intDLines;i++)//行數(shù)

    {

        for(j=intAPixels;j<intDPixels;j++) //像素數(shù)/每行

        {

             intTemp = (*(Uint8 *)(tempYbuffer + i*numPixels + j))*intFA+intFB;

        

             if(intTemp>255)

             {

                 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0xFF;

             }

             else if(intTemp<0)

             {

                 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;

             }

             else

             {

                 *(Uint8 *)(tempYbuffer + i*numPixels + j) = intTemp;

             }      

            }

    }

    //方框內(nèi)偶數(shù)行

    for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//行數(shù)

    {

        for(j=intAPixels;j<intDPixels;j++) //像素數(shù)/每行

        {

             intTemp = (*(Uint8 *)(tempYbuffer + i*numPixels + j))*intFA+intFB;

        

             if(intTemp>255)

             {

                 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0xFF;

             }

             else if(intTemp<0)

             {

                 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;

             }

             else

             {

                 *(Uint8 *)(tempYbuffer + i*numPixels + j) = intTemp;

             }      

            }

    }      

    }

    算法五、灰度窗口變換算法


    灰度窗口變換(slicing)是將某一區(qū)間的灰度級和其他部分(背景)分開。

    灰度窗口變換有兩種,一種是清除背景的,一種是保留背景的。前者把不在灰度窗口范圍內(nèi)的像素都賦值為0,在灰度窗口范圍內(nèi)的像素都賦值為255,這也能實現(xiàn)灰度圖的二值化;后者是把不在灰度窗口范圍內(nèi)的像素保留原灰度值,在灰度窗口范圍內(nèi)的像素都賦值為255。本實驗采用的是清除背景的灰度窗口變換。灰度窗口變換可以檢測出在某一灰度窗口范圍內(nèi)的所有像素,是圖像灰度分析中的一個有力工具。


    在視頻顯示任務(wù)的循環(huán)中,程序首先將視頻數(shù)據(jù)從輸入緩沖區(qū)讀入自己開設(shè)的臨時圖像處理緩沖區(qū),再在臨時圖像處理緩沖區(qū)上進行處理,處理后的數(shù)據(jù)再輸出到輸出緩沖區(qū)。

    在屏幕中央開辟一個矩形區(qū)域,對這個區(qū)域內(nèi)的圖像進行處理。

    以下是處理算法的具體函數(shù),用下面的算法處理函數(shù)把上面完整程序里的相關(guān)算法處理函數(shù)替換掉,就可實現(xiàn)圖像處理的效果。

    /*灰度的窗口變換*/                     

    void windowTrans()

    {

             int i,j,intTemp;

             //方框內(nèi)奇數(shù)行

             for(i=intALines;i<intDLines;i++)//行數(shù)

             {

                 for(j=intAPixels;j<intDPixels;j++) //像素數(shù)/每行

                 {                

                intTemp = *(Uint8 *)(tempYbuffer + i*numPixels + j);

                if(intTemp<intL)

                         *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;

                else if(intTemp>intU)

                    *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0xFF;

                else

                         *(Uint8 *)(tempYbuffer + i*numPixels + j) = intTemp;                      

                       }       

             }

             //方框內(nèi)偶數(shù)行

             for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//行數(shù)

             {

                 for(j=intAPixels;j<intDPixels;j++) //像素數(shù)/每行

                 {                

                intTemp = *(Uint8 *)(tempYbuffer + i*numPixels + j);

                if(intTemp<intL)

                         *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;

                else if(intTemp>intU)

                    *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0xFF;

                else

                         *(Uint8 *)(tempYbuffer + i*numPixels + j) = intTemp;                      

                       }       

             }                

    }

     

                                                  曙海教育

                                                曙海嵌入式學(xué)院

                            (課程:DSP培訓(xùn),FPGA培訓(xùn),MTK培訓(xùn),Android培訓(xùn),iPhone培訓(xùn))

                                               電話:021-51875830

                                               網(wǎng)址:http://www.51qianru.cn

                                                  講師:李現(xiàn)路

                              版權(quán)所有-曙海教育 歡迎轉(zhuǎn)摘,轉(zhuǎn)摘請注明作者和出處

    [此貼子已經(jīng)被作者于2009-12-3 11:48:53編輯過]

    主站蜘蛛池模板: 国内精品自产拍在线观看91| 欧美妇性猛交视频| 国产福利精品视频| 丁香伊人五月综合激激激| 日韩三级中文字幕| 亚洲精品无码mv在线观看网站| 美女主动张腿让男人桶| 国产白白白在线永久播放| www.中文字幕.com| 成人午夜视频免费| 亚洲AV无码一区二区三区网址| 欧美极品在线观看| 午夜爽爽爽男女污污污网站| 适合一个人在晚上偷偷看b站| 国产精品视频免费一区二区 | 久久精品一品道久久精品9| 欧美在线视频一区| 免费精品99久久国产综合精品| 色悠久久久久久久综合网伊人 | eeuss影院www新天堂| 成人精品一区二区不卡视频| 国产福利在线导航| 亚洲欧洲国产精品久久| 知乎的小说哪里可以免费| 国产免费拔擦拔擦8x| 2021国产果冻剧传媒不卡 | 亚洲精品自产拍在线观看| 竹菊影视欧美日韩一区二区三区四区五区 | 色费女人18毛片**在线| 国产精品二区在线| 99精品视频免费在线观看| 女人扒开双腿让男人桶| 主人丝袜脚下的绿帽王八奴| 日本在线视频网址| 亚洲不卡av不卡一区二区| 欧美成人在线视频| 人妻尝试又大又粗久久| 看免费毛片天天看| 国产一区二区三区不卡av | 女m室内被调教过程| 久99久热只有精品国产男同|