0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的圖像旋轉(zhuǎn)和雙線性插值算法設計

CHANBAEK ? 來源:FPGA Zone ? 作者:FPGA Zone ? 2023-09-04 16:52 ? 次閱讀

今天開源一個FPGA圖像處理相關的項目:圖像旋轉(zhuǎn)。圖像旋轉(zhuǎn)算法本身非常簡單,但是如果想讓旋轉(zhuǎn)之后的圖像更加完整、平滑,還需要進行雙線性插值處理,因此整個算法FPGA實現(xiàn)起來還是有一定難度的。

01算法流程

圖像旋轉(zhuǎn)算法可以有兩種思路:一種是前向映射,就是由原始圖像出發(fā),將像素點傳遞給旋轉(zhuǎn)后的圖像;另一種是反向映射,就是從旋轉(zhuǎn)后的圖像出發(fā),找到原始圖像對應像素點,然后通過雙線性插值算法使旋轉(zhuǎn)后圖像更清晰完整。由于前者會丟失很多圖像信息,因此在本項目中采用后者。算法流程圖如下。

圖片

02原理簡介

輸入圖像分辨率默認為256*256,算法處理的是以128為半徑內(nèi)切圓區(qū)域。

圖片

輸出圖像一維坐標為i[0,65535],假設圖像逆時針旋轉(zhuǎn)θ得到輸出圖像,對應的輸入圖像旋轉(zhuǎn)坐標(X,Y)則可以表示成:

X=(i%256-128)*cos(θ)+(128-i/256)*sin(θ)

Y=-(i%256-128)*sin(θ)+(128-i/256)*cos(θ)

首先,對(X,Y)向下取整得到(xx,yy),小數(shù)部分表示為(dx,dy),將(xx,yy)轉(zhuǎn)換到輸出圖像坐標系下為:

xx=xx+128;

yy=128-yy;

進行雙線性插值處理:

I(xx,yy)=(1-dx)(1-dy)I(xx,yy)+ (1-dx)dyI(xx,yy-1)+dx(1-dy)I(xx+1,yy)+dxdyI(xx+1,y-1)

浮點數(shù)定點化處理:

  • sin(θ)和cos(θ)值為乘以8192取整后的結(jié)果;
  • 將上式中dx,dy項定義為8位整數(shù),1改為255參與運算,最后將計算結(jié)果向右平移16位。

03IP核配置

該Vivado工程用到的IP主要是 **Multiplier,**用于乘法運算。

  • Signed_16bit * Signed_16bit

圖片

圖片

  • Unsigned_9bit * Unsigned_9bit

圖片

  • Unsigned_18bit * Unsigned_16bit

圖片

04測試結(jié)果

下方左側(cè)圖像為256*256大小的原始測試圖像,右側(cè)為順時針旋轉(zhuǎn)30°后的結(jié)果。其中只處理了內(nèi)切圓區(qū)域內(nèi)的圖像,其余部分像素賦值為零。

圖片

Verilog代碼的Vivado仿真結(jié)果如下所示。

圖片

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1624

    文章

    21539

    瀏覽量

    600533
  • 圖像處理
    +關注

    關注

    27

    文章

    1272

    瀏覽量

    56506
  • 算法
    +關注

    關注

    23

    文章

    4576

    瀏覽量

    92345
  • Vivado
    +關注

    關注

    19

    文章

    799

    瀏覽量

    66137
  • 圖像旋轉(zhuǎn)

    關注

    0

    文章

    3

    瀏覽量

    2186
收藏 人收藏

    評論

    相關推薦

    什么是線性插值?一維線性插值雙線性插值在BMS開發(fā)中的應用

    線性插值法(linear interpolation),是指使用連接兩個已知量的直線來確定在這兩個已知量之間的一個未知量的的方法。
    的頭像 發(fā)表于 12-24 10:44 ?7835次閱讀
    什么是<b class='flag-5'>線性插值</b>?一維<b class='flag-5'>線性插值</b>和<b class='flag-5'>雙線性插值</b>在BMS開發(fā)中的應用

    雙線性插值法的C語言程序!幫幫忙!拜托各位了!

    在DSP6000開發(fā)平臺上用C語言實現(xiàn)雙線性插值法,實現(xiàn)對圖像的縮放效果的改進。
    發(fā)表于 04-20 18:52

    這個論壇里面有沒有人做 fpga圖像縮小的 (不是放大)??求交流交流 真的是很頭大 到處找不到做 圖像縮小的?

    這個論壇里面有沒有人做fpga圖像縮小的 (不是放大)??求交流交流真的是很頭大到處找不到做 圖像縮小的?可以的話留下個聯(lián)系方式 交流交流我這里有一個 通過雙線性插值實現(xiàn)放大的
    發(fā)表于 12-23 21:10

    一種基于FPGA的實時視頻圖像處理算法研究與實現(xiàn)

    針對視頻的輸出顯示要求,重點介紹了基于雙線性插值算法的實現(xiàn)。ModelSim的仿真結(jié)果表明,該算法符合多屏幕顯示系統(tǒng)的要求。關鍵詞 視頻監(jiān)控;視頻圖像處理;
    發(fā)表于 06-28 07:06

    基于FPGA線性插值-上

    1,背景 利用FPGA做數(shù)據(jù)處理、系統(tǒng)控制時,經(jīng)常需要做線性插值。如圖(1)所示,給點A和B的x,y坐標,需要求A,B中間某一點C的坐標。限定x取整數(shù)。 圖(1) 示意圖 根據(jù)A,
    發(fā)表于 11-20 23:10

    一種改進的線性圖像算法

    針對傳統(tǒng)的雙線性插值法在對圖像進行后會不可避免的產(chǎn)生邊緣模糊的問題,提出了一種改進的線性插值法,該
    發(fā)表于 08-20 12:01 ?29次下載

    基于Matlab的雙線性插值算法圖像旋轉(zhuǎn)中的應用

    MATLAB雙線性插值圖像處理的算法,讀者可以自行參考。
    發(fā)表于 05-04 16:04 ?1次下載

    基于最優(yōu)移位雙線性插值圖像縮放旋轉(zhuǎn)硬件加速研究

    基于最優(yōu)移位雙線性插值圖像縮放旋轉(zhuǎn)硬件加速研究_丁家隆
    發(fā)表于 01-08 15:15 ?10次下載

    基于雙線性插值圖像縮放在GPU上的實現(xiàn)

    基于雙線性插值圖像縮放在GPU上的實現(xiàn)
    發(fā)表于 01-08 14:47 ?0次下載

    基于雙線性插值原理實現(xiàn)圖像縮放算法

    轉(zhuǎn)化為目標圖像的相應點的新坐標。是指在已知的離散數(shù)據(jù)上補連續(xù)函數(shù),使補連續(xù)函數(shù)的曲線通過全部給定的離散數(shù)據(jù)點,是處理離散函數(shù)逼近問題
    發(fā)表于 11-07 14:41 ?11次下載
    基于<b class='flag-5'>雙線性插值</b>原理實現(xiàn)<b class='flag-5'>圖像</b>縮放<b class='flag-5'>算法</b>

    基于FPGA雙線性CFA算法的設計

    實現(xiàn)了基于FPGA雙線性CFA算法。該算法的處理對象是每個像素為8bit的XGA@15Hz
    發(fā)表于 11-23 14:24 ?4312次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>雙線性</b>CFA<b class='flag-5'>插</b><b class='flag-5'>值</b><b class='flag-5'>算法</b>的設計

    FPGA上如何實現(xiàn)雙線性插值的計算

    雙線性插值顧名思義是線性插值Pro,為了說明白什么是雙線性插值,首先得先從線性插值說起。那么什么又是線性呢?
    發(fā)表于 08-09 17:33 ?4575次閱讀

    使用FPGA實現(xiàn)視頻圖像縮放顯示的設計論文說明

    對幾種常用的圖像縮放算法進行了比較,在權(quán)衡了算法復雜度、縮放效果和FPGA 邏輯資源等3大因素后,選擇了雙線性插值算法來實現(xiàn)
    發(fā)表于 01-25 14:51 ?6次下載
    使用<b class='flag-5'>FPGA</b>實現(xiàn)視頻<b class='flag-5'>圖像</b>縮放顯示的設計論文說明

    雙線性插值算法的講解

    雙線性插值中,我們現(xiàn)在找x0', y0'所在位置旁邊的四個點,再根據(jù)這四個點與(x0',y0')距離的關系得到權(quán)重,最后計算出目標圖像中(x,y)一點的像素
    的頭像 發(fā)表于 09-19 10:25 ?3074次閱讀

    FPGA純verilog代碼實現(xiàn)圖像縮放

    本設計將常用的雙線性插值和鄰域算法融合為一個代碼中,通過輸入?yún)?shù)選擇某一種算法
    發(fā)表于 06-06 15:06 ?1972次閱讀
    <b class='flag-5'>FPGA</b>純verilog代碼實現(xiàn)<b class='flag-5'>圖像</b>縮放