chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

FPGA Verilog實現(xiàn)基本的圖像濾波處理仿真

FPGA學習交流 ? 2018-10-19 13:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、用matlab代碼,準備好把圖片轉(zhuǎn)化成Vivado Simulator識別的格式,即每行一個數(shù)據(jù):
img = imread('E:\matlab\Images\2016-09-05-211710.jpg');
if size(img,3)==3
img = rgb2gray(img);
end
height = size(img, 1);
width = size(img, 2);
s = fopen('image2mem.txt','wb'); %opens the output file
cnt = 0;
for r=1:height
for c=1:width
cnt = cnt + 1;
grey=img(r,c);
greyb = dec2bin(grey,8);
Outbyte =greyb(1:8);

if (Outbyte(1:4) == '0000')fprintf(s,'0%X',bin2dec(Outbyte));
else fprintf(s,'%X',bin2dec(Outbyte)); end
if (mod(cnt,1) == 0)fprintf(s,'\r\n'); end
end
end
figure,imshow(img);
fclose(s);

2、EdgeSobel的Verilog源代碼:
`timescale 1ns / 1ps

module EdgeSobel
(
input clk,
input [7:0] inData,
input [11:0]x,
input [11:0]y,
output [7:0] outData
);
parameter pixel_depth=8;
parameter frame_width=640;
parameter block_width=3;
parameter block_height=3;

parameter shiftRegSize=pixel_depth*((block_height-1)*frame_width+block_width);

reg[shiftRegSize-1:0] shiftReg;
wire [block_width*block_height*pixel_depth-1:0] Window;

initial begin shiftReg=10264'b0;end

always@(posedge clk)if((x<640)&&(y<480))shiftReg<={shiftReg,inData};

genvar i,j;
generate
for(i = 0; i < block_height; i = i + 1) begin : array
for(j = 0; j < block_width; j = j + 1) begin : vector
assign Window[pixel_depth*(i * block_width + j)+:pixel_depth] =shiftReg[pixel_depth*(i*frame_width+j)+:pixel_depth];
end
end
endgenerate

wire [7:0] average;
assign average =
(Window[7:0]+Window[15:8]+Window[23:16]+
//Window[31:24]+Window[39:32]+Window[47:40]+
Window[31:24]+Window[39:32]+Window[47:40]+
Window[55:48]+Window[63:56]+Window[71:64])/9 ;

wire signed [pixel_depth+1:0] Gx;
wire signed [pixel_depth+1:0] Gy;
wire [pixel_depth+1:0] Gxabs;
wire [pixel_depth+1:0] Gyabs;
wire [pixel_depth+1:0] G;

assign Gx = shiftReg[pixel_depth*(0*frame_width+2)+:pixel_depth]
+2*shiftReg[pixel_depth*(1*frame_width+2)+:pixel_depth]
+ shiftReg[pixel_depth*(2*frame_width+2)+:pixel_depth]
- shiftReg[pixel_depth*(0*frame_width+0)+:pixel_depth]
-2*shiftReg[pixel_depth*(1*frame_width+0)+:pixel_depth]
- shiftReg[pixel_depth*(2*frame_width+0)+:pixel_depth];
assign Gy = shiftReg[pixel_depth*(2*frame_width+0)+:pixel_depth]
+2*shiftReg[pixel_depth*(2*frame_width+1)+:pixel_depth]
+ shiftReg[pixel_depth*(2*frame_width+2)+:pixel_depth]
- shiftReg[pixel_depth*(0*frame_width+0)+:pixel_depth]
-2*shiftReg[pixel_depth*(0*frame_width+1)+:pixel_depth]
- shiftReg[pixel_depth*(0*frame_width+2)+:pixel_depth];
assign Gxabs = (Gx>0)?Gx-Gx);
assign Gyabs = (Gy>0)?Gy-Gy);
assign G = Gxabs+Gyabs;

//assign outData = average; //平滑
assign outData = G[9:2]; //邊緣檢測
endmodule

3、仿真文件:tb_EdgeSobel.v
`timescale 1ns / 1ps

module tb_edgesobel;

reg clk;
reg [7:0] inData;
reg [19:0] cnt;
reg [9:0] row;
wire [7:0] outData;
reg [7:0] image [307199:0];
integer file_id;
reg [4:0] frame_cnt;


initial
begin
$readmemh("E:/matlab/Vivado/image2mem.txt", image);
file_id = $fopen("E:/matlab/Vivado/mem2image.txt","w");
clk = 0;
cnt = 0;
row = 0;
frame_cnt = 0;
end

EdgeSobel u_2
(
.clk(clk),
.x(1),
.y(1),
.inData(inData),
.outData(outData)
);

always #1 clk = ~clk;

always@(posedge clk)
begin
if(cnt == 307200)
begin
cnt = 0;
row = 0;
frame_cnt = frame_cnt + 1;
end
else
inData = image[cnt];
cnt = cnt+1;
if(frame_cnt==1)
begin
$fwrite(file_id, "%d ", outData);
if(((cnt % 640)==0) &&(cnt>0))
begin
$fwrite(file_id,"\r\n");
row = row + 1;
end;
end
end
endmodule

4、把輸出的txt文件轉(zhuǎn)化成圖片Matlab程序:
A=importdata('E:\matlab\Vivado\mem2image.txt');
A=A./255;
imshow(A);

注意這里的A是double類型的,直接進行imshow會全白,要轉(zhuǎn)化到0-1:A=A./255,或者把double類型轉(zhuǎn)化為整形。

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

    關注

    1650

    文章

    22207

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于Matlab與FPGA的雙邊濾波算法實現(xiàn)

    前面發(fā)過中值、均值、高斯濾波的文章,這些只考慮了位置,并沒有考慮相似度。那么雙邊濾波來了,既考慮了位置,有考慮了相似度,對邊緣的保持比前幾個好很多,當然實現(xiàn)上也是復雜很多。本文將從原理入手,采用Matlab與
    的頭像 發(fā)表于 07-10 11:28 ?3259次閱讀
    基于Matlab與<b class='flag-5'>FPGA</b>的雙邊<b class='flag-5'>濾波</b>算法<b class='flag-5'>實現(xiàn)</b>

    基于 FPGA 的任意波形發(fā)生器+低通濾波器系統(tǒng)設計

    圖像進行平滑去噪處理。 本次設計將用兩種方式實現(xiàn)低通濾波器。 方法一:利用Vivado自身具備的DDS和FIR的IP核實現(xiàn); 方法二:通過
    發(fā)表于 05-07 15:34

    進群免費領FPGA學習資料!數(shù)字信號處理、傅里葉變換與FPGA開發(fā)等

    ~ 01、數(shù)字信號處理FPGA實現(xiàn) 旨在講解前端數(shù)字信號處理算法的高效實現(xiàn)。首先概述了當前的FPGA
    發(fā)表于 04-07 16:41

    FPGA Verilog HDL語法之編譯預處理

    Verilog HDL語言和C語言一樣也提供了編譯預處理的功能?!熬幾g預處理”是Verilog HDL編譯系統(tǒng)的一個組成部分。Verilog
    的頭像 發(fā)表于 03-27 13:30 ?900次閱讀
    <b class='flag-5'>FPGA</b> <b class='flag-5'>Verilog</b> HDL語法之編譯預<b class='flag-5'>處理</b>

    FPGA上的圖像處理算法集成與優(yōu)化

    、Tophat形態(tài)學濾波、RAW8轉(zhuǎn)RGB888、彩色圖像均值濾波、Alpha背景疊加、直方圖灰度拉伸算法以及自動白平衡算法。每種算法都提供了實現(xiàn)方法和相關公式,涵蓋了
    的頭像 發(fā)表于 02-14 13:46 ?977次閱讀
    <b class='flag-5'>FPGA</b>上的<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>算法集成與優(yōu)化

    基于FPGA圖像邊緣檢測設計

    今天給大俠帶來基于 FPGA圖像邊緣檢測設計,話不多說,上貨。 設計流程如下:mif文件的制作→?調(diào)用 ip 核生成rom以及仿真注意問題→?灰度處理→?均值
    的頭像 發(fā)表于 02-10 11:30 ?924次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>圖像</b>邊緣檢測設計

    FPGA圖像處理基礎----實現(xiàn)緩存卷積窗口

    像素行與像素窗口 一幅圖像是由一個個像素點構成的,對于一幅480*272大小的圖片來說,其寬度是480,高度是272。在使用FPGA進行圖像處理時,最關鍵的就是使用
    的頭像 發(fā)表于 02-07 10:43 ?1234次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>基礎----<b class='flag-5'>實現(xiàn)</b>緩存卷積窗口

    基于FPGA實現(xiàn)圖像直方圖設計

    簡單,單采用FPGA實現(xiàn)直方圖的統(tǒng)計就稍顯麻煩。若使用Xilinx和Altera的FPGA芯片,可以使用HLS來進行圖像的加速處理。但這暫
    的頭像 發(fā)表于 12-24 10:24 ?1048次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>圖像</b>直方圖設計

    Verilog 電路仿真常見問題 Verilog 在芯片設計中的應用

    。然而,在實際應用中,設計師可能會遇到各種問題,這些問題可能會影響仿真的準確性和設計的可靠性。 Verilog電路仿真常見問題 仿真環(huán)境的搭建問題
    的頭像 發(fā)表于 12-17 09:53 ?1460次閱讀

    Verilog 測試平臺設計方法 Verilog FPGA開發(fā)指南

    Verilog測試平臺設計方法是Verilog FPGA開發(fā)中的重要環(huán)節(jié),它用于驗證Verilog設計的正確性和性能。以下是一個詳細的Verilog
    的頭像 發(fā)表于 12-17 09:50 ?1412次閱讀

    卡爾曼濾波圖像處理中的應用實例 如何調(diào)優(yōu)卡爾曼濾波參數(shù)

    卡爾曼濾波圖像處理中的應用實例 卡爾曼濾波圖像處理中主要應用于目標跟蹤、噪聲消除和
    的頭像 發(fā)表于 12-16 09:11 ?2332次閱讀

    圖像高斯濾波的原理及FPGA實現(xiàn)思路

    1.概念 高斯分布 圖像濾波之高斯濾波介紹 圖像處理算法|高斯濾波 高斯
    的頭像 發(fā)表于 12-07 09:12 ?2288次閱讀
    <b class='flag-5'>圖像</b>高斯<b class='flag-5'>濾波</b>的原理及<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>思路

    FPGA 實時信號處理應用 FPGA圖像處理中的優(yōu)勢

    優(yōu)勢之一是其并行處理能力。與傳統(tǒng)的CPU或GPU相比,FPGA可以同時執(zhí)行多個操作,這在圖像處理中尤為重要,因為圖像
    的頭像 發(fā)表于 12-02 10:01 ?2158次閱讀

    Verilog vhdl fpga

    編程語言,熟悉時序約束、時序分析方法; 4.熟悉FPGA開發(fā)環(huán)境及仿真調(diào)試工具。 5.熟悉FPGA外部存儲控制器及數(shù)據(jù)傳輸接口,如E2PROM、FLASH、DDR等。有FPGA高速數(shù)據(jù)
    發(fā)表于 11-12 16:40

    基于FPGA實現(xiàn)FIR數(shù)字濾波

    。隨著現(xiàn)代數(shù)字通信系統(tǒng)對于高精度、高處理速度的需求,越來越多的研究轉(zhuǎn)向采用FPGA實現(xiàn)FIR濾波器。而對于FIR濾波器要充分考慮其資源與運
    的頭像 發(fā)表于 11-05 16:26 ?2159次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>FIR數(shù)字<b class='flag-5'>濾波</b>器