日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)其它知識 → 非整數(shù)倍率YUV422圖像的自由縮放算法

      非整數(shù)倍率YUV422圖像的自由縮放算法

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時(shí)間:2010/11/28 15:34:51字體大。A-A+

      作者:佚名點(diǎn)擊:330次評論:1次標(biāo)簽: 自由縮放 倍率 圖片壓縮

      • 類型:圖像處理大小:684KB語言:中文 評分:5.0
      • 標(biāo)簽:
      立即下載

      下面的代碼,實(shí)現(xiàn)將一幅YUV422的雙通道圖片(640x480大小),取中間區(qū)域(560x400大小)使用插值的辦法放大至(640x480)。這個(gè)算法可以用來實(shí)現(xiàn)將圖片外圍區(qū)域截掉。

      #define X_RATIO (8)
      #define Y_RATIO (6)

      PUBLIC void YUVScale(JINF_YUV_CHN_T *const yuv_ptr,const uint32 Width,const uint32 Height)
      {
      uint8  *const src_y_ptr = (uint16 *)yuv_ptr->y_chn_ptr;
      uint8  *const src_uv_ptr = (uint16 *)yuv_ptr->u_chn_ptr;

      uint32  x,y,w,h=0,xl,yl,dx,dy;

      if ((Width%(X_RATIO<<1)!=0)||(Height%(Y_RATIO<<1)!=0))
      {
      TRACE("%s Width=%d,Height=%d",__func__,Width,Height);
      return;
      }

      ASSERT(PNULL != yuv_ptr);

      xl=(Width-(Width/X_RATIO))>>1;
      yl=(Height-(Height/Y_RATIO))>>1;

      dx=Width / (X_RATIO<<1);
      dy=Height / (Y_RATIO<<1);

      for (y=0; y<yl; y++,h++)
      {
      w = 0;

      for (x=0; x<xl; x+=2,w+=2)
      {
      CopyPixel:
      //2 Quadrant 2
      src_y_ptr[h*Width+w] = src_y_ptr[(dy+y)*Width+dx+x];
      src_y_ptr[h*Width+w+1] = src_y_ptr[(dy+y)*Width+dx+x+1];
      src_uv_ptr[h*Width+w] = src_uv_ptr[(dy+y)*Width+dx+x];
      src_uv_ptr[h*Width+w+1] = src_uv_ptr[(dy+y)*Width+dx+x+1];
      //2 Quadrant 1
      src_y_ptr[h*Width+(Width-w-1)] = src_y_ptr[(dy+y)*Width+(Width-dx-x-1)];
      src_y_ptr[h*Width+(Width-w-2)] = src_y_ptr[(dy+y)*Width+(Width-dx-x-2)];
      src_uv_ptr[h*Width+(Width-w-1)] = src_uv_ptr[(dy+y)*Width+(Width-dx-x-1)];
      src_uv_ptr[h*Width+(Width-w-2)] = src_uv_ptr[(dy+y)*Width+(Width-dx-x-2)];
      //2 Quadrant 4
      src_y_ptr[(Height-h-1)*Width+(Width-w-1)] = src_y_ptr[(Height-dy-y-1)*Width+(Width-dx-x-1)];
      src_y_ptr[(Height-h-1)*Width+(Width-w-2)] = src_y_ptr[(Height-dy-y-1)*Width+(Width-dx-x-2)];
      src_uv_ptr[(Height-h-1)*Width+(Width-w-1)] = src_uv_ptr[(Height-dy-y-1)*Width+(Width-dx-x-1)];
      src_uv_ptr[(Height-h-1)*Width+(Width-w-2)] = src_uv_ptr[(Height-dy-y-1)*Width+(Width-dx-x-2)];
      //2 Quadrant 3
      src_y_ptr[(Height-h-1)*Width+w] = src_y_ptr[(Height-dy-y-1)*Width+dx+x];
      src_y_ptr[(Height-h-1)*Width+w+1] = src_y_ptr[(Height-dy-y-1)*Width+dx+x+1];
      src_uv_ptr[(Height-h-1)*Width+w] = src_uv_ptr[(Height-dy-y-1)*Width+dx+x];
      src_uv_ptr[(Height-h-1)*Width+w+1] = src_uv_ptr[(Height-dy-y-1)*Width+dx+x+1];

      if (
      ((w+2) % (X_RATIO<<1))==
      ((X_RATIO<<1)-2)
      )
      {
      w+=2;
      goto CopyPixel;
      }
      }

      if (((h+1) % (Y_RATIO))==(Y_RATIO-1))
      {
      h++;

      memcpy(src_y_ptr+h*Width,src_y_ptr+(h-1)*Width,Width);
      memcpy(src_uv_ptr+h*Width,src_uv_ptr+(h-1)*Width,Width);

      memcpy(src_y_ptr+(Height-h-1)*Width,src_y_ptr+(Height-h)*Width,Width);
      memcpy(src_uv_ptr+(Height-h-1)*Width,src_uv_ptr+(Height-h)*Width,Width);
      }
      }
      }


      編寫這個(gè)算法的好處是,在不改變圖片原始大小的情況下去除照片的邊框。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(1)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)