<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇DSP專(zhuān)區(qū)DSP系統(tǒng)和硬件開(kāi)發(fā)討論區(qū) → 李現(xiàn)路:DSP6000圖像位置移動(dòng)與變形的典型算法(一)


      共有7206人關(guān)注過(guò)本帖樹(shù)形打印

    主題:李現(xiàn)路:DSP6000圖像位置移動(dòng)與變形的典型算法(一)

    客人(124.78.*.*)
      1樓


    李現(xiàn)路:DSP6000圖像位置移動(dòng)與變形的典型算法(一)  發(fā)帖心情 Post By:2009-12-3 13:46:58

     

                                  李現(xiàn)路:DSP6000圖像位置移動(dòng)與變形的典型算法(一)

     

    一、圖像的平移算法

    圖像平移的數(shù)學(xué)表達(dá)式原理:

    初始坐標(biāo)為(x0,y0)的點(diǎn)經(jīng)過(guò)平移(tx,ty)(以向右,向下為正方向)后,坐標(biāo)變?yōu)椋▁1,y1)。這兩點(diǎn)之間的關(guān)系是x1=x0+tx,y1=y0+ty 。

    這樣,平移后的圖像上的每一點(diǎn)都可以在原圖像中找到對(duì)應(yīng)的點(diǎn)。例如,對(duì)于新圖中的(0,0)像素,代入上面的議程組,可以求出對(duì)應(yīng)原圖中的點(diǎn),可以直接將它的像素值同意設(shè)置為0或者255(對(duì)于灰度圖就是黑色或白色)。

    同樣,若有點(diǎn)不在原圖中,也就說(shuō)明原圖中有點(diǎn)被移出顯示區(qū)域。如果不想丟失被移出的部分圖像,可以將新生成的圖像擴(kuò)大tx,高度擴(kuò)大ty。


     

    平移處理的C語(yǔ)言代碼:


     

    /*圖像偏移量初始化*/

    Int intXOffset=-200; //水平偏移量

    Int intYOffset=-200; //垂直偏移量,必須是2的整數(shù)

    void geometryTrans()

    {

             int i,j;

             int intCapX,intCapY;

             for(i=0;i<numLines;i++) //行數(shù)

             {

                 for(j=0;j<numPixels;j++) //像素?cái)?shù) /每行

                 {                    

                intCapX = j-intXOffset;

                intCapY = i-intYOffset/2;           

                

                // 判斷 是否在原圖范圍內(nèi)

                if((intCapX>=0) && (intCapX<numPixels))  

                {  

                    //奇數(shù)行

                         if((i<numLines/2) && (intCapY>=0) && (intCapY<numLines/2))

                         {

                                             // 傳送亮度信號(hào)

                                             *(Uint8 *)(tempYbuffer + i*numPixels + j) = *(Uint8 *)(capYbuffer + (i-intYOffset/2)*numPixels + intCapX); 

                                    }

                                    //偶數(shù)行

                                    else if((i>=numLines/2) && (i<numLines) && (intCapY>=numLines/2) && (intCapY<numLines))

                                    {

                                                 // 傳送亮度信號(hào)

                                             *(Uint8 *)(tempYbuffer + i*numPixels + j) = *(Uint8 *)(capYbuffer + (i-intYOffset/2)*numPixels + intCapX);                                 

                                    }

                                    else

                                    {

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

                                    }                                                                                  

                     }

                else

                {

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

                }                                             

                       }       

             }

    }       

    二、圖像的垂直鏡像變換算法

    數(shù)學(xué)表達(dá)式原理:

    設(shè)圖像高度為IHeight,寬度為IWidth,原圖中(x0,y0)垂直鏡像后將變?yōu)椋▁0,

    IHeight-y0),其表達(dá)式為:

    設(shè)圖像高度為IHeight,寬度為IWidth,原圖中(x0,y0)垂直鏡像后將變?yōu)椋▁0,

    IHeight-y0),其表達(dá)式為:

    X0=x1; y0=IHeight-y1


     

    算法的C語(yǔ)言代碼:


     

             portNumber = 0;

             vpHchannel0 = bt656_8bit_ncfc(portNumber);

             bt656_capture_start(vpHchannel0);

             /*等待第一幀數(shù)據(jù)采集完成*/

             while(capNewFrame == 0){}

             /*將數(shù)據(jù)存入顯示緩沖區(qū),并清采集完成的標(biāo)志*/

             capNewFrame =0;


     

             for(i=0;i<numLines;i++)

             {

                  /*傳送Y緩沖區(qū)*/

                  //前半部分為原始圖像

                       DAT_copy((void *)(capYbuffer + i * numPixels),

                          (void *)(disYbuffer + i * numPixels),

                          numPixels>>1);

                       //后半部分為垂直鏡像圖像

                       DAT_copy((void *)(capYbuffer + i * numPixels),


    支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    李現(xiàn)路:DSP6000圖像位置移動(dòng)與變形的典型算法(一)








    簽名