日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內不再提示

詳解基于FPGA的圖像旋轉系統(tǒng)的運用

電子工程師 ? 來源:CSDN技術社區(qū) ? 作者:weixin_39940788 ? 2021-04-15 14:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、圖像旋轉原理

圖像旋轉是指圖像按照某個位置轉動一定角度的過程,旋轉中圖像仍保持這原始尺寸。圖像旋轉后圖像的水平對稱軸、垂直對稱軸及中心坐標原點都可能會發(fā)生變換,因此需要對圖像旋轉中的坐標進行相應轉換。

如圖,原圖像經過順時針旋轉角度為 θ 后,源圖像的坐標為 P0 ( Xo, Yo ) 的點移動到了 P1(X1, Y1)。

70096670-9dac-11eb-8b86-12bb97331649.png

經過推導,可以得到上述的 P0 和P1 的坐標變換關系式。

二、MATLAB仿真

方案一、【正向預設】從原圖映射到目標圖像在此方案中,實現代碼的方式是正向的思路,將原圖中的像素點的坐標進行坐標的旋轉,然后直接幅值到輸出的圖像中,此方案旨在找到輸入坐標與輸出坐標之間的代數對應關系。

在該方法中,首先將原始坐標以及目標坐標放入了極坐標中,并且通過在極坐標中的關系,找到了同時滿足X0,Y0,X1,Y1四個參量的方程組,以此來解出對應的坐標關系,并以此為基礎得到了輸入與輸出之間的矩陣運算關系如下:

701757ee-9dac-11eb-8b86-12bb97331649.png

Matlab代碼實現如下:

clear allclc

% 讀入圖片im = imread(‘1.jpg’);figure;imshow(im);

% 求出旋轉矩陣a = 40 / 180 * pi;R = [cos(a), -sin(a); sin(a), cos(a)];

% 求出圖片大小 ch為通道數 h為高度 w為寬度sz = size(im);h = sz(1);w = sz(2);ch = sz(3);c = [h; w] / 2;

% 初始化結果圖像im2 = uint8(zeros(h, w, 3));

for k = 1:ch for i = 1:h for j = 1:w p = [i; j]; % round為四舍五入 pp = round(R*(p-c)+c); if (pp(1) 》= 1 && pp(1) 《= h && pp(2) 》= 1 && pp(2) 《= w) im2(pp(1), pp(2), k) = im(i, j, k); end end endend

% 顯示圖像figure;imshow(im2);

但在實際的測試中發(fā)現,這種方法所旋轉得到的圖像有著較為嚴重的失真現象,具體情況如下圖所示:

原圖

旋轉后的圖像

很明顯可以看到,在旋轉之后這兩張圖片出現了較大的差別,首先是原圖像被裁減了,其次是目標圖像中有較多的瑕點(雜點)。究其原因在于,從原圖旋轉后得到的目標圖像的像素位置在原圖中找不到。另外就是邊緣被裁剪的問題,由于在這個方案中約束了顯示區(qū)域,因此在旋轉的過程中,部分像素點就會由于超出邊界而被裁剪。針對以上的兩個問題,進行了如下改進。

方案二、【逆向預設】從目標圖像映射到原圖

由于在之前的方案中出現了雜點以及圖像邊緣裁剪的問題,因此在本方案中,我們采用了逆向思維,用目標圖像的坐標去與原圖的坐標進行坐標匹配,若在原圖像中能找到匹配的圖像,就顯示該點旋轉后的點坐標,若在原圖中找不到該點,則不顯示該點,通過這樣就解決了雜點的問題。 其中,pp為旋轉在后的坐標對應矩陣,在if語句中限定了原圖的區(qū)域,用此區(qū)域則可以到原圖中的坐標點,以此來排除不在區(qū)域中的坐標點,這樣就可以解決雜點的問題。

在這種方案下,坐標的對應關系如下:

70cce06e-9dac-11eb-8b86-12bb97331649.png

MATLAB仿真代碼如下:

clear allclc

% 讀入圖片im = imread(‘1.jpg’);figure;imshow(im);

% 求出旋轉矩陣a = 20 / 180 * pi;R = [cos(a), sin(a); -sin(a), cos(a)];

% 求出圖片大小 ch為通道數 h為高度 w為寬度

sz = size(im);h = sz(1);w = sz(2);ch = sz(3);c = [w;h] /2;

% 初始化結果圖像im2 = uint8(zeros(h, w, 3));for k = 1:ch %遍歷輸出圖像所有位置的像素 for i = 1:h for j = 1:w p = [j; i]; % p :輸出圖像的像素坐標 % round為四舍五入 pp = round(R*(p-c)+c); %pp :對應到輸入圖像的像素坐標 %逆向進行像素的查找 if (pp(1) 》= 1 && pp(1) 《= w && pp(2) 》= 1 && pp(2) 《= h) im2(i, j, k) = im(pp(2), pp(1), k); end end endend

% 顯示圖像figure;imshow(im2);

這樣,該旋轉后的圖像就有了較好的還原度,達到了相應的題目要求,具體的方案的效果如下圖所示:

原圖

旋轉后的圖像

如圖所示,相對方案一而言,圖像的效果就好了很多,但圖像邊緣仍然存在邊緣被切割的現象。 方案三:考慮到未對旋轉后的圖像進行顯示區(qū)域的劃分,因此此類旋轉只是對單一像素點的旋轉,然后在原圖像的顯示區(qū)域上進行坐標點的重新組合,得到顯示的圖像。在解決的方法的思路上,采用目標顯示區(qū)域的重新劃分來解決該問題。

具體思路是,采用原圖像的長寬作為基準,再用坐標轉換的關系,將長和寬轉換到旋轉后的坐標系中,得到目標圖像在旋轉后坐標系中的顯示區(qū)域,代碼具體如下:

% 讀入圖片im = imread(‘1.jpg’);

figure;imshow(im);

% 求出旋轉矩陣a = 30 / 180 * pi;R = [cos(a), -sin(a); sin(a), cos(a)];R = R‘; % 求出旋轉矩陣的逆矩陣進行逆向查找

% 計算原圖大小sz = size(im);h = sz(1);w = sz(2);ch = sz(3);c1 = [h; w] / 2;

% 計算顯示完整圖像需要的畫布大小hh = floor(w*sin(a)+h*cos(a))+1;ww = floor(w*cos(a)+h*sin(a))+1;c2 = [hh; ww] / 2;

% 初始化目標畫布im2 = uint8(ones(hh, ww, 3)*128);for k = 1:ch for i = 1:hh for j = 1:ww p = [i; j]; pp = (R*(p-c2)+c1); mn = floor(pp); ab = pp - mn; a = ab(1); b = ab(2); m = mn(1); n = mn(2); % 線性插值方法 if (pp(1) 》= 2 && pp(1) 《= h-1 && pp(2) 》= 2 && pp(2) 《= w-1) im2(i, j, k) = (1-a)*(1-b)*im(m, n, k) + a*(1-b)*im(m+1, n, k)。.. + (1-a)*b*im(m, n, k) + a*b*im(m, n, k); end end endend

% 顯示圖像figure;imshow(im2);

這樣,就解決了圖像邊緣被裁剪的問題,是整個圖像得以完整的顯示,實際的效果如下:

原圖

旋轉后的圖像

從圖示的效果可以看出,邊緣區(qū)域被裁剪的問題被解決了,但問題是圖片加陰影的區(qū)域面積比原圖大很多。 綜合以上三種方案,結合實際需求,由于我們的顯示是在一塊固定大小的屏幕上進行顯示,整個圖像的顯示范圍有限,采用CORDIC算法進行坐標變換產生的延時太大。最終基于處理速度和資源占用的均衡考慮,最終選擇方案二作為我們圖像旋轉的設計方案。

三、旋轉坐標計算

在該設計中,要求圖像擁有0到360的任意角度的旋轉,坐標變換需要角度的正弦和余弦值。 利用matlab生成正余弦表,并將其擴大256倍,打印到文件中。利用得到的正余弦表數值,將其寫入verilog代碼中,生成正余弦查找表。通過輸入角度值來索引其正余弦數值。Matlab生成正余弦列表的代碼如下:

71bcdbc8-9dac-11eb-8b86-12bb97331649.png

該正弦,余弦通過MATLAB計算得到,并預先儲存到FPGA的片上儲存空間中,在進行坐標變換時,讀取對應角度的正弦,余弦值,進行坐標變換。由于計算得到的正弦和余弦值為浮點數,而FPGA擅長于進行整數運算。故要進行浮點數到整數的轉換,具體的實現方法是,將計算得到的浮點正弦,余弦值乘上 256 后再取整,計算得到的結果于原結果相比被擴大了256倍,而在數字電路中,除法操作可以用移位來進行。結果右移8位即等效于除于256 。 坐標變換的核心代碼如下:

7265e100-9dac-11eb-8b86-12bb97331649.png

將坐標變換計算模塊封裝為一個子模塊,輸入輸出圖像的坐標和旋轉角度后,即可計算出對應的輸入圖像對應的像素的坐標。然后讀取該坐標的像素值,寫入到旋轉重建的圖像對應的坐標位置即可。

四、效果展示(Results show)

0、原圖 (正常顯示)

1、順時針旋轉22度

2、順時針旋轉90度

3、順時針旋轉270度

4、順時針旋轉341度

五、說明

在公眾號對話框回復 FPGA2019 ,即可獲得該項目的工程源代碼,詳細的文檔說明,MATLAB仿真代碼。
編輯:lyn

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

    關注

    1664

    文章

    22509

    瀏覽量

    639553
  • MATLAB仿真
    +關注

    關注

    4

    文章

    176

    瀏覽量

    21023
  • 圖像旋轉
    +關注

    關注

    0

    文章

    3

    瀏覽量

    2313

原文標題:基于FPGA的圖像旋轉系統(tǒng)設計

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    FPGA圖像處理平臺搭建方案

    基于 MicroBlaze V 的 FPGA 視覺平臺:通過以太網實時捕獲、調試和傳輸 MIPI 相機數據,支持全幀或高速 ROI 范圍。
    的頭像 發(fā)表于 04-22 09:32 ?465次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b>處理平臺搭建方案

    綜合圖像處理硬件平臺設計資料:2-基于6U VPX的雙TMS320C6678+Xilinx FPGA K7 XC7K420T的圖像信號處理板

    FPGA光纖, XCVU9P板卡, 高速圖像采集, 基帶信號處理, 加速計算卡, 無線仿真平臺, 圖像信號處理板
    的頭像 發(fā)表于 03-30 14:39 ?163次閱讀
    綜合<b class='flag-5'>圖像</b>處理硬件平臺設計資料:2-基于6U VPX的雙TMS320C6678+Xilinx <b class='flag-5'>FPGA</b> K7 XC7K420T的<b class='flag-5'>圖像</b>信號處理板

    如何以編程方式在觸摸屏 MIPI 顯示器上旋轉圖像?

    如何以編程方式在觸摸屏 MIPI 顯示器上旋轉圖像? 我正在使用 Gnome 的出廠映像202411。我沒有鍵盤和鼠標,互聯網信息亭正在 FireFox 上加載。 我嘗試了 xrandr 實用程序
    發(fā)表于 02-04 06:45

    JG024Z-DX系列 光電旋轉測徑儀 360度高精高速

    4.旋轉部件 旋轉部件采用伺服電機加同步帶傳動,旋轉平穩(wěn),定位精確,噪音低。 5.電能傳遞部件 旋轉系統(tǒng)電能傳遞采用導電滑環(huán) 傳輸穩(wěn)定性高?:能夠有效減少信號干擾和電阻變化,確保穩(wěn)定
    發(fā)表于 01-30 14:23

    圖像采集卡分類、接口與性能指標詳解

    、接口類型與性能指標直接決定了視覺系統(tǒng)的成像質量、傳輸效率和實時處理能力。以下從分類、主流接口、核心性能指標三個維度展開詳解,覆蓋工業(yè)級、商用級全場景應用特性。一
    的頭像 發(fā)表于 01-29 16:55 ?732次閱讀
    <b class='flag-5'>圖像</b>采集卡分類、接口與性能指標<b class='flag-5'>詳解</b>

    隨鉆測量系統(tǒng)旋轉閥脈沖器的設計與優(yōu)化

    隨鉆測量(MWD)系統(tǒng)中的旋轉閥泥漿脈沖發(fā)生器是實現井下數據實時上傳的關鍵裝置。該裝置通過調制鉆井液壓力波動,將定向參數和地層參數編碼傳輸。
    的頭像 發(fā)表于 12-02 13:46 ?712次閱讀

    圖像采集卡:機器視覺時代的圖像數據核心樞紐

    一、圖像采集卡的技術本質:從信號到數據的“轉換器”與“傳輸通道”圖像采集卡(ImageCaptureCard)是機器視覺系統(tǒng)的核心硬件組件,本質是通過專用芯片(如FPGA、ASIC)實
    的頭像 發(fā)表于 11-12 15:15 ?891次閱讀
    <b class='flag-5'>圖像</b>采集卡:機器視覺時代的<b class='flag-5'>圖像</b>數據核心樞紐

    基于FPGA的CLAHE圖像增強算法設計

    CLAHE圖像增強算法又稱為對比度有限的自適應直方圖均衡算法,其算法原理是通過有限的調整圖像局部對比度來增強有效信號和抑制噪聲信號。
    的頭像 發(fā)表于 10-15 10:14 ?825次閱讀
    基于<b class='flag-5'>FPGA</b>的CLAHE<b class='flag-5'>圖像</b>增強算法設計

    基于FPGA利用sm4進行實時圖像加密

    求一份在fpga上利用sm4進行實時圖像加密的文件
    發(fā)表于 09-15 19:05

    圖像傳感器實際上是如何工作的

    FPGA 廣泛應用于各種圖像處理應用,包括醫(yī)療和科學成像、空間成像、汽車和國防領域。
    的頭像 發(fā)表于 09-06 09:54 ?1467次閱讀
    <b class='flag-5'>圖像</b>傳感器實際上是如何工作的

    友思特方案 | FPGA 加持,友思特圖像采集卡高速預處理助力視覺系統(tǒng)運行提速增效

    圖像預處理是圖像處理關鍵中間環(huán)節(jié),通過優(yōu)化傳感器到主機的數據傳輸處理為后續(xù)減負。其算法依托硬件執(zhí)行,搭載?FPGA?的友思特圖像采集卡以高速運算和并行特性縮短處理時間、降低延遲并提升吞
    的頭像 發(fā)表于 08-20 09:18 ?1678次閱讀
    友思特方案 | <b class='flag-5'>FPGA</b> 加持,友思特<b class='flag-5'>圖像</b>采集卡高速預處理助力視覺<b class='flag-5'>系統(tǒng)</b>運行提速增效

    基于米爾MYC-YM90X安路飛龍DR1開發(fā)板儀表圖像識別系統(tǒng)開發(fā)

    FPGA 之間的高速數據交互,峰值帶寬可達 12.8GB/s,納秒級延遲交互確保了數據傳輸的及時性與準確性 。在儀表圖像識別系統(tǒng)中,攝像頭采集的圖像數據可通過 MIPI 接口快速傳輸至
    發(fā)表于 08-17 21:29

    FPGA 加持,友思特圖像采集卡高速預處理助力視覺系統(tǒng)運行提速增效

    圖像預處理是圖像處理關鍵環(huán)節(jié),可優(yōu)化數據傳輸、減輕主機負擔,其算法可在FPGA等硬件上執(zhí)行。友思特FPGA圖像采集卡憑借
    的頭像 發(fā)表于 08-13 17:41 ?1376次閱讀
    <b class='flag-5'>FPGA</b> 加持,友思特<b class='flag-5'>圖像</b>采集卡高速預處理助力視覺<b class='flag-5'>系統(tǒng)</b>運行提速增效

    基于FPGA的數字識別系統(tǒng)設計

    圖像處理領域,圖像識別是較為困難而關鍵的技術。這項技術被廣泛的應用到娛樂、工業(yè)、軍事等領域。本次設計數字識別系統(tǒng)已經在車牌識別、運動員號碼識別等多處運用。本
    的頭像 發(fā)表于 07-16 14:28 ?1977次閱讀
    基于<b class='flag-5'>FPGA</b>的數字識別<b class='flag-5'>系統(tǒng)</b>設計

    itop-3588開發(fā)板Android系統(tǒng)開發(fā)筆記-旋轉 Android系統(tǒng)

    系統(tǒng)顯示方向需要旋轉 90 度 修改 Android12 源碼的 device/rockchip/common/BoardConfig.mk 文件,修改主屏顯示的方向,角度可根據顯示需求,自定義修改 0
    發(fā)表于 05-19 11:04
    介休市| 黄梅县| 虞城县| 天等县| 桂东县| 壤塘县| 淄博市| 上林县| 卢湾区| 邻水| 临桂县| 吕梁市| 平昌县| 日土县| 敖汉旗| 信丰县| 巴东县| 杨浦区| 江永县| 儋州市| 马山县| 合山市| 江门市| 二连浩特市| 商洛市| 德惠市| 扎兰屯市| 祁阳县| 德清县| 朝阳市| 无极县| 青河县| 毕节市| 南丰县| 兴隆县| 潮安县| 万全县| 顺昌县| 辽宁省| 偃师市| 曲周县|