这 FPGA. 项目 旨在详细介绍如何处理图像 verilog. 从读取Verilog中的输入位图图像(.bmp),处理和将处理结果写入Verilog中的输出位图映像。 这 full Verilog code for reading image, 图像处理提供和写入图像。

在这方面 FPGA. Verilog项目,一些简单的处理操作在Verilog中实现,例如反转,亮度控制和阈值操作。通过“参数”文件选择图像处理操作,然后,将处理后的图像数据写入位图图像输出.BMP以进行验证目的。 The 图像读数 Verilog代码作为图像传感器/摄像机的Verilog模型运行,这可以实际上有助于实时功能验证 FPGA. 图像处理项目。当您希望在BMP格式中看到输出图像时,图像写入部分也非常有用。在这个项目中,我将一些简单的图像处理代码添加到阅读部分中以制定图像处理的示例,但您可以轻松地将其删除以获取原始图像数据。学生提出的所有相关问题都在本文的底部回答。
首先,Verilog不能 阅读图像 directly. 要在Verilog中读取.bmp映像,则需要从位图格式转换为十六进制格式。下面是MATLAB示例代码,用于将位图图像转换为.hex文件。输入图像大小为768x512,图像.hex文件包括位图图像的R,G,B数据。
首先,Verilog不能 阅读图像 directly. 要在Verilog中读取.bmp映像,则需要从位图格式转换为十六进制格式。下面是MATLAB示例代码,用于将位图图像转换为.hex文件。输入图像大小为768x512,图像.hex文件包括位图图像的R,G,B数据。
b=imread('kodim24.bmp'); % 24-bit BMP image RGB888 k=1; for i=512:-1:1 % image is written from the last row to the first row for j=1:768 a(k)=b(i,j,1); a(k+1)=b(i,j,2); a(k+2)=b(i,j,3); k=k+3; end end fid = fopen('kodim24.hex', 'wt'); fprintf(fid, '%x\n', a); disp('Text file write done');disp(' '); fclose(fid); % fpga4student.com FPGA projects, Verilog projects, VHDL projects
要读取图像十六进制数据文件,Verilog使用此命令:$ ReadMemh或$ ReadMemb如果图像数据处于二进制文本文件中。在读取图像.hex文件后,RGB图像数据被保存到内存中并读出处理。
以下是图像读取和处理部分的Verilog代码:
/******************************************************************************/ /****************** Module for reading and processing image **************/ /******************************************************************************/ `include "参数.." // Include definition file // hzgifts.cn: FPGA. 项目s for students
// FPGA. 项目: Image processing in Verilog module image_read #( parameter WIDTH = 768, // Image width HEIGHT = 512, // Image height INFILE = "./img/kodim01.hex", // image file START_UP_DELAY = 100, // Delay during start up time HSYNC_DELAY = 160,// Delay between HSYNC pulses VALUE= 100, // value for Brightness operation THRESHOLD= 90, // Threshold value for Threshold operation SIGN=1 // Sign value using for brightness operation // SIGN = 0: Brightness subtraction
// SIGN = 1: Brightness addition ) ( input HCLK, // clock input HRESETn, // Reset (active low) output VSYNC, // Vertical synchronous pulse // This signal is often a way to indicate that one entire image is transmitted. // Just create and is not used, will be used once a video or many images are transmitted. output reg HSYNC, // Horizontal synchronous pulse // An HSYNC indicates that one line of the image is transmitted. // Used to be a horizontal synchronous signals for writing bmp file. output reg [7:0] DATA_R0, // 8 bit Red data (even) output reg [7:0] DATA_G0, // 8 bit Green data (even) output reg [7:0] DATA_B0, // 8 bit Blue data (even) output reg [7:0] DATA_R1, // 8 bit Red data (odd) output reg [7:0] DATA_G1, // 8 bit Green data (odd) output reg [7:0] DATA_B1, // 8 bit Blue data (odd) // Process and transmit 2 pixels in parallel to make the process faster, you can modify to transmit 1 pixels or more if needed output ctrl_done // Done flag ); //------------------------------------------------- // Internal Signals //------------------------------------------------- parameter sizeOfWidth = 8; // data width parameter sizeoflengthreal. = 1179648; // image data : 1179648 bytes: 512 * 768 *3 // local parameters for FSM localparam ST_IDLE = 2'b00,// idle state ST_VSYNC = 2'b01,// state for creating vsync ST_HSYNC = 2'b10,// state for creating hsync ST_DATA = 2'b11;// state for data processing reg [1:0] cstate, // current state nstate; // next state reg start; // start signal: trigger Finite state machine beginning to operate reg HRESETn_d; // delayed reset signal: use to create start signal reg ctrl_vsync_run; // control signal for vsync counter reg [8:0] ctrl_vsync_cnt; // counter for vsync reg ctrl_hsync_run; // control signal for hsync counter reg [8:0] ctrl_hsync_cnt; // counter for hsync reg ctrl_data_run; // control signal for data processing reg [7 : 0] total_memory [0 : sizeOfLengthReal-1];// memory to store 8-bit data image // temporary memory to save image data : size will be WIDTH*HEIGHT*3 integer temp_BMP [0 : WIDTH*HEIGHT*3 - 1]; integer org_R [0 : WIDTH*HEIGHT - 1]; // temporary storage for R component integer org_G [0 : WIDTH*HEIGHT - 1]; // temporary storage for G component integer org_B [0 : WIDTH*HEIGHT - 1]; // temporary storage for B component // counting variables integer i, j; // temporary signals for calculation: details in the paper. integer tempR0,tempR1,tempG0,tempG1,tempB0,tempB1; // temporary variables in contrast and brightness operation integer value,value1,value2,value4;// temporary variables in invert and threshold operation reg [ 9:0] row; // row index of the image reg [10:0] col; // column index of the image reg [18:0] data_count; // data counting for entire pixels of the image //-------------------------------------------------// // -------- Reading data from input file ----------// //-------------------------------------------------// initial begin $readmemh(INFILE,total_memory,0,sizeOfLengthReal-1); // read file from INFILE end // use 3 intermediate signals RGB to save image data always@(start) begin if(start == 1'b1) begin for(i=0; i<WIDTH*HEIGHT*3 ; i=i+1) begin temp_BMP[i] = total_memory[i+0][7:0]; end for(i=0; i<HEIGHT; i=i+1) begin for(j=0; j<WIDTH; j=j+1) begin
// Matlab code writes image from the last row to the first row
// Verilog code does the same in reading to correctly save image pixels into 3 separate RGB mem org_R[WIDTH*i+j] = temp_BMP[WIDTH*3*(HEIGHT-i-1)+3*j+0]; // save Red component org_G[WIDTH*i+j] = temp_BMP[WIDTH*3*(HEIGHT-i-1)+3*j+1];// save Green component org_B[WIDTH*i+j] = temp_BMP[WIDTH*3*(HEIGHT-i-1)+3*j+2];// save Blue component end end end end //----------------------------------------------------// // ---Begin to read image file once reset was high ---// // ---by creating a starting pulse (start)------------// //----------------------------------------------------// always@(posedge HCLK, negedge HRESETn) begin if(!HRESETn) begin start <= 0; HRESETn_d <= 0; end else begin // ______ HRESETn_d <= HRESETn; // | | if(HRESETn == 1'b1 && HRESETn_d == 1'b0) // __0___| 1 |___0____ : starting pulse start <= 1'b1; else start <= 1'b0; end end //-----------------------------------------------------------------------------------------------// // Finite state machine for reading RGB888 data from memory and creating hsync and vsync pulses --// //-----------------------------------------------------------------------------------------------// always@(posedge HCLK, negedge HRESETn) begin if(~HRESETn) begin cstate <= ST_IDLE; end else begin cstate <= nstate; // update next state end end //-----------------------------------------// //--------- State Transition --------------// //-----------------------------------------// // IDLE . VSYNC . HSYNC . DATA always @(*) begin case(cstate) ST_IDLE: begin if(start) nstate = ST_VSYNC; else nstate = ST_IDLE; end ST_VSYNC: begin if(ctrl_vsync_cnt == START_UP_DELAY) nstate = ST_HSYNC; else nstate = ST_VSYNC; end ST_HSYNC: begin if(ctrl_hsync_cnt == HSYNC_DELAY) nstate = ST_DATA; else nstate = ST_HSYNC; end ST_DATA: begin if(ctrl_done) nstate = ST_IDLE; else begin if(col == WIDTH - 2) nstate = ST_HSYNC; else nstate = ST_DATA; end end endcase end // ------------------------------------------------------------------- // // --- counting for time period of vsync, hsync, data processing ---- // // ------------------------------------------------------------------- // always @(*) begin ctrl_vsync_run = 0; ctrl_hsync_run = 0; ctrl_data_run = 0; case(cstate) ST_VSYNC: begin ctrl_vsync_run = 1; end // trigger counting for vsync ST_HSYNC: begin ctrl_hsync_run = 1; end // trigger counting for hsync ST_DATA: begin ctrl_data_run = 1; end // trigger counting for data processing endcase end // counters for vsync, hsync always@(posedge HCLK, negedge HRESETn) begin if(~HRESETn) begin ctrl_vsync_cnt <= 0; ctrl_hsync_cnt <= 0; end else begin if(ctrl_vsync_run) ctrl_vsync_cnt <= ctrl_vsync_cnt + 1; // counting for vsync else ctrl_vsync_cnt <= 0; if(ctrl_hsync_run) ctrl_hsync_cnt <= ctrl_hsync_cnt + 1; // counting for hsync else ctrl_hsync_cnt <= 0; end end // counting column and row index for reading memory always@(posedge HCLK, negedge HRESETn) begin if(~HRESETn) begin row <= 0; col <= 0; end else begin if(ctrl_data_run) begin if(col == WIDTH - 2) begin row <= row + 1; end if(col == WIDTH - 2) col <= 0; else col <= col + 2; // reading 2 pixels in parallel end end end //-------------------------------------------------// //----------------Data counting---------- ---------// //-------------------------------------------------// always@(posedge HCLK, negedge HRESETn) begin if(~HRESETn) begin data_count <= 0; end else begin if(ctrl_data_run) data_count <= data_count + 1; end end assign VSYNC = ctrl_vsync_run; assign ctrl_done = (data_count == 196607)? 1'b1: 1'b0; // done flag //-------------------------------------------------// //------------- Image processing ---------------// //-------------------------------------------------// always @(*) begin HSYNC = 1'b0; DATA_R0 = 0; DATA_G0 = 0; DATA_B0 = 0; DATA_R1 = 0; DATA_G1 = 0; DATA_B1 = 0; if(ctrl_data_run) begin HSYNC = 1'b1; `ifdef BRIGHTNESS_OPERATION /**************************************/ /* BRIGHTNESS ADDITION OPERATION */ /**************************************/ if(SIGN == 1) begin // R0 tempR0 = org_R[WIDTH * row + col ] + VALUE; if (tempR0 > 255) DATA_R0 = 255; else DATA_R0 = org_R[WIDTH * row + col ] + VALUE; // R1 tempR1 = org_R[WIDTH * row + col+1 ] + VALUE; if (tempR1 > 255) DATA_R1 = 255; else DATA_R1 = org_R[WIDTH * row + col+1 ] + VALUE; // G0 tempG0 = org_G[WIDTH * row + col ] + VALUE; if (tempG0 > 255) DATA_G0 = 255; else DATA_G0 = org_G[WIDTH * row + col ] + VALUE; tempG1 = org_G[WIDTH * row + col+1 ] + VALUE; if (tempG1 > 255) DATA_G1 = 255; else DATA_G1 = org_G[WIDTH * row + col+1 ] + VALUE; // B tempB0 = org_B[WIDTH * row + col ] + VALUE; if (tempB0 > 255) DATA_B0 = 255; else DATA_B0 = org_B[WIDTH * row + col ] + VALUE; tempB1 = org_B[WIDTH * row + col+1 ] + VALUE; if (tempB1 > 255) DATA_B1 = 255; else DATA_B1 = org_B[WIDTH * row + col+1 ] + VALUE; end else begin /**************************************/ /* BRIGHTNESS SUBTRACTION OPERATION */ /**************************************/ // R0 tempR0 = org_R[WIDTH * row + col ] - VALUE; if (tempR0 < 0) DATA_R0 = 0; else DATA_R0 = org_R[WIDTH * row + col ] - VALUE; // R1 tempR1 = org_R[WIDTH * row + col+1 ] - VALUE; if (tempR1 < 0) DATA_R1 = 0; else DATA_R1 = org_R[WIDTH * row + col+1 ] - VALUE; // G0 tempG0 = org_G[WIDTH * row + col ] - VALUE; if (tempG0 < 0) DATA_G0 = 0; else DATA_G0 = org_G[WIDTH * row + col ] - VALUE; tempG1 = org_G[WIDTH * row + col+1 ] - VALUE; if (tempG1 < 0) DATA_G1 = 0; else DATA_G1 = org_G[WIDTH * row + col+1 ] - VALUE; // B tempB0 = org_B[WIDTH * row + col ] - VALUE; if (tempB0 < 0) DATA_B0 = 0; else DATA_B0 = org_B[WIDTH * row + col ] - VALUE; tempB1 = org_B[WIDTH * row + col+1 ] - VALUE; if (tempB1 < 0) DATA_B1 = 0; else DATA_B1 = org_B[WIDTH * row + col+1 ] - VALUE; end `endif /**************************************/ /* INVERT_OPERATION */ /**************************************/ `ifdef INVERT_OPERATION value2 = (org_B[WIDTH * row + col ] + org_R[WIDTH * row + col ] +org_G[WIDTH * row + col ])/3; DATA_R0=255-value2; DATA_G0=255-value2; DATA_B0=255-value2; value4 = (org_B[WIDTH * row + col+1 ] + org_R[WIDTH * row + col+1 ] +org_G[WIDTH * row + col+1 ])/3; DATA_R1=255-value4; DATA_G1=255-value4; DATA_B1=255-value4; `endif /**************************************/ /********THRESHOLD OPERATION *********/ /**************************************/ `ifdef THRESHOLD_OPERATION value = (org_R[WIDTH * row + col ]+org_G[WIDTH * row + col ]+org_B[WIDTH * row + col ])/3; if(value > THRESHOLD) begin DATA_R0=255; DATA_G0=255; DATA_B0=255; end else begin DATA_R0=0; DATA_G0=0; DATA_B0=0; end value1 = (org_R[WIDTH * row + col+1 ]+org_G[WIDTH * row + col+1 ]+org_B[WIDTH * row + col+1 ])/3; if(value1 > THRESHOLD) begin DATA_R1=255; DATA_G1=255; DATA_B1=255; end else begin DATA_R1=0; DATA_G1=0; DATA_B1=0; end `endif end end endmodule
这 image processing operation is selected in the following "参数.." file. To change the processing operation, just switch the comment line.
/***************************************/ /****************** Definition file ********/ /************** **********************************************/ `define INPUTFILENAME "your_image.hex" // Input file name `define OUTPUTFILENAME "output.bmp" // Output file name // Choose the operation of code by delete // in the beginning of the selected line //`define BRIGHTNESS_OPERATION `define INVERT_OPERATION //`define THRESHOLD_OPERATION // hzgifts.cn FPGA projects, Verilog projects, VHDL projects
这 following Verilog code is to write the processed image data to a bitmap image for verification:
/****************** Module for writing .bmp image *************/ /***********************************************************/ // hzgifts.cn FPGA. 项目s, verilog. projects, VHDL projects // Verilog project: Image processing in Verilog module image_write #(parameter WIDTH = 768, // Image width HEIGHT = 512, // Image height INFILE = "output.bmp", // Output image BMP_HEADER_NUM = 54 // Header for bmp image ) ( input HCLK, // Clock input HRESETn, // Reset active low input hsync, // Hsync pulse input [7:0] DATA_WRITE_R0, // Red 8-bit data (odd) input [7:0] DATA_WRITE_G0, // Green 8-bit data (odd) input [7:0] DATA_WRITE_B0, // Blue 8-bit data (odd) input [7:0] DATA_WRITE_R1, // Red 8-bit data (even) input [7:0] DATA_WRITE_G1, // Green 8-bit data (even) input [7:0] DATA_WRITE_B1, // Blue 8-bit data (even) output reg Write_Done ); // hzgifts.cn FPGA projects, Verilog projects, VHDL projects //-----------------------------------// //-------Header data for bmp image-----// //-------------------------------------// // Windows BMP files begin with a 54-byte header initial begin BMP_header[ 0] = 66;BMP_header[28] =24; BMP_header[ 1] = 77;BMP_header[29] = 0; BMP_header[ 2] = 54;BMP_header[30] = 0; BMP_header[ 3] = 0;BMP_header[31] = 0; BMP_header[ 4] = 18;BMP_header[32] = 0; BMP_header[ 5] = 0;BMP_header[33] = 0; BMP_header[ 6] = 0;BMP_header[34] = 0; BMP_header[ 7] = 0;BMP_header[35] = 0; BMP_header[ 8] = 0;BMP_header[36] = 0; BMP_header[ 9] = 0;BMP_header[37] = 0; BMP_header[10] = 54;BMP_header[38] = 0; BMP_header[11] = 0;BMP_header[39] = 0; BMP_header[12] = 0;BMP_header[40] = 0; BMP_header[13] = 0;BMP_header[41] = 0; BMP_header[14] = 40;BMP_header[42] = 0; BMP_header[15] = 0;BMP_header[43] = 0; BMP_header[16] = 0;BMP_header[44] = 0; BMP_header[17] = 0;BMP_header[45] = 0; BMP_header[18] = 0;BMP_header[46] = 0; BMP_header[19] = 3;BMP_header[47] = 0; BMP_header[20] = 0;BMP_header[48] = 0; BMP_header[21] = 0;BMP_header[49] = 0; BMP_header[22] = 0;BMP_header[50] = 0; BMP_header[23] = 2;BMP_header[51] = 0; BMP_header[24] = 0;BMP_header[52] = 0; BMP_header[25] = 0;BMP_header[53] = 0; BMP_header[26] = 1; BMP_header[27] = 0; end //---------------------------------------------------------// //--------------Write .bmp file ----------------------// //----------------------------------------------------------// initial begin fd = $fopen(INFILE, "wb+"); end always@(Write_Done) begin // once the processing was done, bmp image will be created if(Write_Done == 1'b1) begin for(i=0; i<BMP_HEADER_NUM; i=i+1) begin $fwrite(fd, "%c", BMP_header[i][7:0]); // write the header end for(i=0; i<WIDTH*HEIGHT*3; i=i+6) begin // write R0B0G0 and R1B1G1 (6 bytes) in a loop $fwrite(fd, "%c", out_BMP[i ][7:0]); $fwrite(fd, "%c", out_BMP[i+1][7:0]); $fwrite(fd, "%c", out_BMP[i+2][7:0]); $fwrite(fd, "%c", out_BMP[i+3][7:0]); $fwrite(fd, "%c", out_BMP[i+4][7:0]); $fwrite(fd, "%c", out_BMP[i+5][7:0]); end end end
这 header data for the bitmap image is very important and it is published 这里 。如果没有标题数据,则无法正确显示书面图像。在Verilog HDL中,$ FWRITE命令用于将数据写入文件。
接下来,让我们编写一个测试台Verilog代码来验证图像处理操作。
`timescale 1ns/1ps /**************************************************/ /******* Testbench for simulation ****************/ /*********************************************/ // hzgifts.cn FPGA projects, Verilog projects, VHDL projects // Verilog project: Image processing in Verilog `include "参数.." // include definition file module tb_simulation; //------------------ // Internal Signals //------------------------------------------------- reg HCLK, HRESETn; wire vsync; wire hsync; wire [ 7 : 0] data_R0; wire [ 7 : 0] data_G0; wire [ 7 : 0] data_B0; wire [ 7 : 0] data_R1; wire [ 7 : 0] data_G1; wire [ 7 : 0] data_B1; wire enc_done; image_read #(.INFILE(`INPUTFILENAME)) u_image_read ( .HCLK (HCLK ), .HRESETn (HRESETn ), .VSYNC (vsync ), .HSYNC (hsync ), .DATA_R0 (data_R0 ), .DATA_G0 (data_G0 ), .DATA_B0 (data_B0 ), .DATA_R1 (data_R1 ), .DATA_G1 (data_G1 ), .DATA_B1 (data_B1 ), .ctrl_done (enc_done) ); image_write #(.INFILE(`OUTPUTFILENAME)) u_image_write ( .HCLK(HCLK), .HRESETn(HRESETn), .hsync(hsync), .DATA_WRITE_R0(data_R0), .DATA_WRITE_G0(data_G0), .DATA_WRITE_B0(data_B0), .DATA_WRITE_R1(data_R1), .DATA_WRITE_G1(data_G1), .DATA_WRITE_B1(data_B1), .Write_Done() ); //------------- // Test Vectors //------------------------------------- initial begin HCLK = 0; forever #10 HCLK = ~HCLK; end initial begin HRESETn = 0; #25 HRESETn = 1; end endmodule
最后,我们拥有一切运行模拟以验证图像处理代码。让我们使用以下映像作为输入位图文件:

输入位图映像
运行仿真6ms,关闭模拟并打开输出图像以检查结果。以下是由参数中所选操作处理的输出图像:

反转后输出位图图像

阈值操作后输出位图图像

减去亮度后输出位图图像
由于读取代码是为模拟图像传感器/摄像机进行仿真目的,因此建议不要合成代码。如果您真的想合成处理代码并直接运行此操作 FPGA. ,您需要通过块存储器(RAM)和设计地址生成器来替换代码中的这些图像阵列(Total_memory,Temp_BMP,ORG_R,ORG_B,ORG_G),以从块存储器读取图像数据。
收到与此项目相关的许多问题后,以下是您问题的答案:
1.有关如何运行模拟的说明和教程:
2. 可以下载此图像处理项目的完整Verilog代码 这里 . 运行大约6ms并关闭模拟的模拟,然后您将能够看到输出图像。
3. 这 reading part operates as a Verilog model of an image sensor/camera (output RGB data, HSYNC, VSYNC, HCLK). 这 Verilog image reading code is extremely useful for functional verification in real-time FPGA image/video projects.
4.在此项目中,我添加了图像处理部分以制定图像增强的示例。您可以轻松地删除处理部件以仅在您想要使用图像传感器模型以验证图像处理设计的情况下仅获取原始图像数据。
5.将图像保存为三个单独的RGB MEMS:因为MATLAB代码将图像十六进制文件从最后一行写入第一行,RGB保存代码(org_r,org_b,org_g)在读取temp_bmp内存中读取以保存RGB数据正确。如果您想以不同的方式执行此操作,您可以相应地更改它。
6.如果要更改图像大小,您可能会发现以下对BMP标头的说明:
图像尺寸= 768 * 512 * 3 = 1179648字节
BMP标题= 54字节
BMP文件大小=图像大小+ BMP标题= 1179702字节
将其转换为十六进制数字:十进制= 120036以十六进制的十六进制数
这n 4-byte size of BMP file: 00H, 12 in Hexa = 18 Decimal, 00H, 36 in Hexa = 54 Decimal
这就是我们如何获得以下值:
bmp_header [2] = 54;
bmp_header [3] = 0;
BMP_HEADER [4] = 18;
bmp_header [5] = 0;
图像宽度= 768 =>在十六进制:0x0300中。图像宽度的4个字节为0,3,0,0。 这就是你得到以下值的方式:
bmp_header [18] = 0;
bmp_header [19] = 3;
bmp_header [20] = 0;
bmp_header [21] = 0;
图像高度= 512 =>在十六进制:0x0200中。 图像宽度的4个字节为0,2,0,0。 这就是我们如何获得以下值:
BMP_HEADER [22] = 0;
BMP_HEADER [23] = 2;
bmp_header [24] = 0;
bmp_header [25] = 0;
7. 您不应该合成此代码,因为它不设计用于在FPGA上运行, 但是对于功能验证目的而言. 如果您真的想综合此代码(读取和处理)和 将图像加载到FPGA中 用于直接处理FPGA,更换所有温度。块RAM的变量(org_r,org_b,org_b,tmp_bmp = total_memory)并生成地址以读取图像数据(删除始终@(start)和所有“for loops” - 这些是用于仿真目的)。有两种方式:1。使用$ READMEMH编写RAM代码并将图像数据初始化为内存; 2.使用Xilinx核心生成器或Altera Megaf功能生成块内存,并将图像数据加载到存储器的初始值(用于Xilinx Core Gen的.MIF for .MIF for Altera Megafecunction),然后从内存中读取图像数据处理它(FSM设计)。
8.在此项目中,同时读取两个偶数和旧像素,以加速处理,但您可以根据您的设计更改正在读取的像素数。
9.写作 verilog. 代码对于测试目的,代码也非常有用,因为您可以在BMP格式中看到输出。
10。 如果要进行实时图像处理,可以检查此此内容是否为相机接口代码: Basys 3 FPGA OV7670相机
29。 多路复用器的Verilog代码
3. 这 reading part operates as a Verilog model of an image sensor/camera (output RGB data, HSYNC, VSYNC, HCLK). 这 Verilog image reading code is extremely useful for functional verification in real-time FPGA image/video projects.
4.在此项目中,我添加了图像处理部分以制定图像增强的示例。您可以轻松地删除处理部件以仅在您想要使用图像传感器模型以验证图像处理设计的情况下仅获取原始图像数据。
5.将图像保存为三个单独的RGB MEMS:因为MATLAB代码将图像十六进制文件从最后一行写入第一行,RGB保存代码(org_r,org_b,org_g)在读取temp_bmp内存中读取以保存RGB数据正确。如果您想以不同的方式执行此操作,您可以相应地更改它。
6.如果要更改图像大小,您可能会发现以下对BMP标头的说明:
图像尺寸= 768 * 512 * 3 = 1179648字节
BMP标题= 54字节
BMP文件大小=图像大小+ BMP标题= 1179702字节
将其转换为十六进制数字:十进制= 120036以十六进制的十六进制数
这n 4-byte size of BMP file: 00H, 12 in Hexa = 18 Decimal, 00H, 36 in Hexa = 54 Decimal
这就是我们如何获得以下值:
bmp_header [2] = 54;
bmp_header [3] = 0;
BMP_HEADER [4] = 18;
bmp_header [5] = 0;
图像宽度= 768 =>在十六进制:0x0300中。图像宽度的4个字节为0,3,0,0。 这就是你得到以下值的方式:
bmp_header [18] = 0;
bmp_header [19] = 3;
bmp_header [20] = 0;
bmp_header [21] = 0;
图像高度= 512 =>在十六进制:0x0200中。 图像宽度的4个字节为0,2,0,0。 这就是我们如何获得以下值:
BMP_HEADER [22] = 0;
BMP_HEADER [23] = 2;
bmp_header [24] = 0;
bmp_header [25] = 0;
7. 您不应该合成此代码,因为它不设计用于在FPGA上运行, 但是对于功能验证目的而言. 如果您真的想综合此代码(读取和处理)和 将图像加载到FPGA中 用于直接处理FPGA,更换所有温度。块RAM的变量(org_r,org_b,org_b,tmp_bmp = total_memory)并生成地址以读取图像数据(删除始终@(start)和所有“for loops” - 这些是用于仿真目的)。有两种方式:1。使用$ READMEMH编写RAM代码并将图像数据初始化为内存; 2.使用Xilinx核心生成器或Altera Megaf功能生成块内存,并将图像数据加载到存储器的初始值(用于Xilinx Core Gen的.MIF for .MIF for Altera Megafecunction),然后从内存中读取图像数据处理它(FSM设计)。
8.在此项目中,同时读取两个偶数和旧像素,以加速处理,但您可以根据您的设计更改正在读取的像素数。
9.写作 verilog. 代码对于测试目的,代码也非常有用,因为您可以在BMP格式中看到输出。
10。 如果要进行实时图像处理,可以检查此此内容是否为相机接口代码: Basys 3 FPGA OV7670相机
推荐的 Verilog projects:
2. FIFO记忆的Verilog代码
3. 16位单循环MIPS处理器的Verilog代码
4. verilog. HDL中的可编程数字延迟计时器
5. 数字电路中基本逻辑组件的Verilog代码
6. 32位无符号分频器的Verilog代码
7. 用于固定点矩阵乘法的Verilog代码
8. 在Verilog HDL中的板牌识别
9. 携带外观前方乘法器的Verilog代码
10。 微控制器的Verilog代码
11. 4x4乘法器的Verilog代码
12. 停车系统的Verilog代码
13。 使用Verilog HDL对FPGA的图像处理
14。 如何使用Verilog HDL将文本文件加载到FPGA中
15. 交通灯控制器的Verilog代码
16。 FPGA. 闹钟的Verilog代码
17。 比较器设计的Verilog代码
18。 VERILOG代码D触发器
19。 完整加法器的Verilog代码
20。 与测试台的计数器的Verilog代码
21。 16位RISC处理器的Verilog代码
22。 FPGA. 上的按钮的Verilog代码
23。 如何为双向/ inout端口编写Verilog TestBench
3. 16位单循环MIPS处理器的Verilog代码
4. verilog. HDL中的可编程数字延迟计时器
5. 数字电路中基本逻辑组件的Verilog代码
6. 32位无符号分频器的Verilog代码
7. 用于固定点矩阵乘法的Verilog代码
8. 在Verilog HDL中的板牌识别
9. 携带外观前方乘法器的Verilog代码
10。 微控制器的Verilog代码
11. 4x4乘法器的Verilog代码
12. 停车系统的Verilog代码
13。 使用Verilog HDL对FPGA的图像处理
14。 如何使用Verilog HDL将文本文件加载到FPGA中
15. 交通灯控制器的Verilog代码
16。 FPGA. 闹钟的Verilog代码
17。 比较器设计的Verilog代码
18。 VERILOG代码D触发器
19。 完整加法器的Verilog代码
20。 与测试台的计数器的Verilog代码
21。 16位RISC处理器的Verilog代码
22。 FPGA. 上的按钮的Verilog代码
23。 如何为双向/ inout端口编写Verilog TestBench
24。 Tic Tac Toe游戏在Verilog和Logisim
25。 verilog. 中的32位5级流水线MIPS处理器(第1部分)
26。 verilog. 中的32位5级流水线MIPS处理器(Part-2)
27。 verilog. 中的32位5级流水线MIPS处理器(第3部分)
28。 解码器的Verilog代码25。 verilog. 中的32位5级流水线MIPS处理器(第1部分)
26。 verilog. 中的32位5级流水线MIPS处理器(Part-2)
27。 verilog. 中的32位5级流水线MIPS处理器(第3部分)
29。 多路复用器的Verilog代码
van,
回复 删除我的名字是珠宝。一世'来自印度的米在Manipal大学做B.Tech你的代码使用Verilog HDL的图像处理真的很有帮助。一世'm使用Verilog HDL进行JPEG编码器进行JPEG编码器的项目,用于灰度图像。你可以帮我有这个话题的代码吗?
问候,
宝石Dominic Savio Antony
请给我发电子邮件。谢谢。
删除班车!
删除如果您有与JPEG压缩有关的代码,请使用前进的离散余弦变换,请发送给我,我的电子邮件ID是[email protected]
我可以获得完整的图像处理VHDL
删除请将代码分享到[email protected]
删除[email protected]
回复 删除通过电子邮件发送给您。请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢
删除你好van loi le,代码非常有用。谢谢。你能给我发送完整的Verilog源代码和测试台,你在这里使用的图像
删除提前致谢
([email protected])
谢谢
回复 删除You are welcome. Please help to like and share the site with your friends: //www.facebook.com/fpga4student and keep updates with coming projects.Thanks.
删除你好van loi le,代码非常有用。谢谢。你能给我发我的完整Verilog源代码吗?
回复 删除请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢
删除你的电子邮箱是什么?
回复 删除您好,请分享项目我的电子邮件:[email protected]
回复 删除通过电子邮件发送给您。请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢
删除你好,你可以将项目分享给我吗? [email protected]
删除嗨代码非常有用,请发给我完整的代码
回复 删除我的邮件ID是[email protected]
回复 删除通过电子邮件发送给您。请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢
删除嘿[email protected]
删除你能发给我代码吗?
电子邮件:[email protected]
请你发给我完整的Verilog源文件吗?我的邮件ID是[email protected]。它'd对我的图像处理中的项目非常有用。
回复 删除PleeAc区检查您的电子邮件
回复 删除嗨van,你能为我提供完整的源代码,我想学习这个项目,thx很多
删除我的电子邮件:[email protected]
您能否扼杀完整的Verilog源文件。我的电子邮件是[email protected]。
回复 删除请查看您的电子邮件。
删除嗨,您的代码对我非常有用。请分享项目我的电子邮件:[email protected]
回复 删除谢谢你。
通过电子邮件发送给您。请使用Verilog / VHDL FPGA4Student.com与FPGA项目保持联系。谢谢
删除嗨,你能否自由分享我的代码,因为我不能为此付出代价。如果你善待这件事,我会非常乐于助人。
删除嗨......我发现你的代码在我的项目中更有用。 。你能分享我吗? 。我的电子邮件:[email protected]
回复 删除你好,
回复 删除请查看您的电子邮件
优秀的实施。
删除你能否转发我的整个Verilog文件,以便我可以在我的项目中使用,
电子邮件:[email protected]
我对使用的两个变量有疑问"total_memory" and "sizeOfLengthReal"。输入哪些值?
这se are size of the image memory. It depends on your image size.
删除您好,请分享项目我的电子邮件:[email protected]
回复 删除嗨,我的电子邮件ID是:[email protected],可以给我发电子邮件源代码。
回复 删除邮件我代码:[email protected]
回复 删除vipul4336 @ gmail.com,谢谢:)
回复 删除你能给我发电子邮件吗?
回复 删除[email protected]
使用Verilog HDL对FPGA的图像处理的精致教程。我感谢您分享它。 颜色校正服务 在图像操纵中起着至关重要的作用。
回复 删除请你分享这个代码吗?我的邮件ID是[email protected] .....
回复 删除提前致谢。
凉爽的!
回复 删除[email protected]
非常有用的来源。我需要在FPGA中加载视频文件。你能帮助我和程序我必须遵循什么?提前致谢。
回复 删除我的邮件ID是:[email protected]
主席先生,自2016年以来,我曾跟着你的博客,目前我正在做一个关于使用小波变换算法设计编解码器的项目,先生,我需要你的帮助。你可以帮助我完成我的项目吗?
回复 删除好贴 ! [email protected]
回复 删除非常好!!我想使用你的代码。电子邮件[email protected]
回复 删除你能给我发给我代码@ [email protected]
回复 删除你能把代码邮寄到[email protected]吗?
回复 删除您好,如果您可以将代码分享到[email protected],我会非常欣赏
回复 删除谢谢!
请向我们发送完整代码,我们需要zed-board处理输出吗?我的电子邮件地址是[email protected]。提前致谢...
回复 删除布拉沃先生。你做得很好,它将帮助新的学习者像我一样。先生,你能跟我分享代码,所以我可以练习它。先生请在我的电子邮件地址与我分享全部代码[email protected]
回复 删除提前致谢。祝你好运。
请查看您的电子邮件。
回复 删除行政
我需要完整的FPGA代码..我可以有这么做吗?
回复 删除你的电子邮箱是什么?
回复 删除此评论已被作者删除。
回复 删除请你发给我源代码。我的电子邮件地址是[email protected]。先感谢您!
回复 删除可以ı让这个过程的完整Verilog代码在我的项目中使用吗?对我来说将如此乐于助人。邮件:[email protected]
回复 删除你能发给我完整的Verilog代码吗?'对于我的项目非常有帮助。顺便说一句,作为一个新的学习者,它会帮助我很高兴。我的电子邮件:[email protected]。
回复 删除你能给我发给我完整的Verilog代码,我的电子邮件:[email protected],谢谢很多
回复 删除你能给我发送完整的Verilog代码吗?
回复 删除电子邮件:[email protected]
谢谢你
请你发给我完整的Verilog代码吗?'对于我的项目非常有帮助。
回复 删除电子邮件:[email protected]
谢谢你
It'对我非常有用。你能发给我完整的Verilog代码吗?
回复 删除我的电子邮件:[email protected]
你好,
回复 删除这是惊人的,我可以问完整的Verilog代码吗?一世'正在做一个个人项目和完整的代码会帮助我感谢。
电子邮件:[email protected]
嘿冰霜@gmail.com.
删除你能发给我代码吗?
电子邮件:[email protected]
请查看你的邮箱
回复 删除请寄给我..
删除请把它寄给我。我的电子邮件是[email protected]。谢谢
回复 删除请给我发给我的代码。我的电子邮件ID是[email protected]
回复 删除Loi Le Van ...请尽快给我邮寄全部代码'紧急......谢谢
回复 删除我的邮件ID是[email protected]
请邮寄全部代码。我的电子邮件是[email protected]
删除谢谢。
可以ı获取此过程的完整Verilog代码在我的项目中使用。对我来说将如此乐于助人。邮件:[email protected]
回复 删除有人有代码?你能发给我吗?
回复 删除[email protected]
你可以在[email protected]上发给我全部代码
回复 删除你能给我发给我代码,[email protected]谢谢
回复 删除先生非常好的工作,我很想看看完整的代码。
回复 删除请在[email protected]通过电子邮件发送给我
伟大的工作先生,你能给我发给我代码,[email protected]谢谢
回复 删除伟大的项目谢谢
回复 删除你能寄给我整个代码,提前感谢[email protected]
回复 删除似乎非常有用的LOI,欣赏它如果您发送完整的源代码,[email protected]
回复 删除PLZ发送完整的源代码到[email protected]
回复 删除我可以问你吗?
回复 删除我可以'使用Verilog使用图像处理。那么如何用图像输入并用图像输出?
您使用的是哪种语言?
回复 删除verilog. HDL。
删除这 challenge is to process the output from the vedio driver to fpga.Since I'm a beginner, I can'甚至看到输入和输出。
请给我发一个文件。 [email protected]
回复 删除请清楚,帖子显示了如何读写图像。
回复 删除谢谢,但代码让我帮助。所以,请。
删除谢谢,但代码让我帮助。所以,请。
删除[email protected]
回复 删除请邮件
您好,谢谢您的信息,你能给我发给我源代码[email protected]谢谢
回复 删除谢谢,那个'太棒了。但是在你实施了这些代码的哪个董事会?
回复 删除请求向我发送完整的代码,我的电子邮件ID是[email protected]
回复 删除您好,谢谢您的信息,你能给我发给我源代码[email protected]谢谢
回复 删除你能发送整个代码吗?
回复 删除我的电子邮件[email protected]
谢谢你...
你好这个代码非常有用。
回复 删除请发送到代码
[email protected]
你好面包车。
回复 删除请你发给我完整的Verilog源文件吗?
这对我来说非常有用。
谢谢你。祝你今天过得愉快。
我的电子邮件是[email protected]
你好面包车,
回复 删除你能发给我VHDL代码吗?谢谢
[email protected]
您好,谢谢您的信息,您也可以发给我源代码[email protected]谢谢
回复 删除我可以得到源代码吗? [email protected]
回复 删除您好,人们可以给我这个项目的全部代码我的电子邮件是[email protected]
回复 删除您好,人们可以给我这个项目的全部代码我的电子邮件是[email protected]
回复 删除嗨lợi,你能给我发全代码吗?我有一个关于使用机器学习的图像处理的项目,我不知道将文件读取到缓冲区并将数据从缓冲区传输到另一个缓冲区。我的电子邮件是[email protected]。你非常适合你的帮助!
回复 删除请发给我全代码sir.i想要这件事作为我的项目。提前致谢。
回复 删除[email protected]
[email protected]
回复 删除你能发给我代码吗?
不
删除你好,你可以发给我源代码吗? [email protected]
回复 删除我可以得到源代码吗? [email protected]
回复 删除我可以得到源代码吗? [email protected]
回复 删除检查您的电子邮件。谢谢。
回复 删除你好先生,请给我发电子邮件全部代码([email protected])我'm尝试执行一个项目,其中我需要在FPGA中加载图像来对它进行一些处理,它非常有帮助您拥有完整的代码。
回复 删除你能在[email protected]上给我发电子邮件给我发电子邮件
回复 删除请问我会在[email protected]上给我发电子邮件给我发电子邮件。我在前一次提供了一个错误的电子邮件ID。
回复 删除嗨......我发现你的代码在我的项目中更有用。 。你能分享我吗? 。我的电子邮件:[email protected]
回复 删除你好,,,
回复 删除如果您有JPEG图像压缩的Verilog HDL代码,请发送给我,,,
我的电子邮件ID是[email protected]
伟大的!!!
回复 删除请发电子邮件给我。 [email protected]
好的信息。
回复 删除我可以收到完整的源代码吗?
我的电子邮件Adrress是[email protected]
好的信息。
回复 删除我可以收到完整的源代码吗?
我的电子邮件Adrress是[email protected]
I'm无法执行您给出的代码,因为我没有'要了解输入和输出是什么,以及如何分配内存。你能帮我么...
回复 删除先生,我'm无法执行代码,因为我不明白,总内存和sizeoflengthreal-1是什么。一世'm在那个项目上做一个项目。所以你能给我发给我代码吗?
回复 删除我的g邮箱地址是:[email protected]
这 provided code is a good start in image processing on FPGA. Spend some time to figure it out.
回复 删除总内存是从.hex文件读取图像数据的内存。
sizeoflengthreal-1是总存储器的大小。图像尺寸为768x512像素。每个像素有3个数据(R-G-B)。每个基准R或G或B都有8位。然后您可以计算总内存大小。
您的示例正如我所需要的那样。您可以通过电子邮件将源代码发送给[email protected]
回复 删除这 provided code is good enough for you to start an image processing project on FPGA. Spend some time to figure it out.
回复 删除什么应该是I和J值..
回复 删除你好谢谢。我更新了I和J代码值。基本上,I和J是用于读取图像的所有像素(R,G,B)的存储器的索引。
删除教育帖子。喜欢并欣赏它。继续共享。
回复 删除谢谢你的善意的话。非常欣赏它。肯定会继续提供更多教育FPGA项目。
删除谢谢,这篇文章非常经过教育,并以良好的方式解释。请邮寄给我完整的源代码。我的邮件ID是[email protected]。
回复 删除你能发给我源代码吗? [email protected]
回复 删除任何人都可以解释他如何在字节中计算文件大小(2签名字节后的4个字节'BM'在位图标题中,请?一世'非常混淆。我试图转换为十六进制然后计算文件大小,但它看起来不是真的。
回复 删除bmp_header [2] = 54;
bmp_header [3] = 0;
BMP_HEADER [4] = 18;
bmp_header [5] = 0;
图像尺寸= 768 * 512 * 3 = 1179648字节
删除BMP标题= 54字节
BMP文件大小=图像大小+ BMP标题= 1179702字节
将其转换为十六进制数字:十进制= 120036以十六进制的十六进制数
这n 4-byte size of BMP file: 00H, 12 in Hexa = 18 Decimal, 00H, 36 in Hexa = 54 Decimal
那'你如何获得价值观:
bmp_header [2] = 54;
bmp_header [3] = 0;
BMP_HEADER [4] = 18;
bmp_header [5] = 0;
这是一个非常好的项目....我可以获得完整的源代码吗?
回复 删除如果是这样,请有人在[email protected]上向我发送给我
您能否将源代码发送到[email protected]?
回复 删除此评论已被作者删除。
回复 删除大家好,
回复 删除这 provided information on this post are pretty enough for you to get started with image processing on FPGA. Please spend some time to figure it out so that you can learn a lot from the experience.
此帖子是FPGA上的图像处理的教程。无法提供完整代码。
谢谢。
行政
如果您有任何疑问,可以通过[email protected]向我询问或在此处评论。我会帮助回答所有问题。
回复 删除#错误:C:/modeltech_5.5e/examples/verilog1.v(2):近"#": expecting: ';'
回复 删除#错误:C:/modeltech_5.5e/examples/verilog1.v(49):近"[": expecting: ';'
#错误:c:/modeltech_5.5e/examples/verilog1.v(55):靠近"]":syntax error
#错误:c:/modeltech_5.5e/examples/verilog1.v(56):靠近"]":syntax error
当我编译模块以进行读取和处理时,我正在收到这些错误。
此帖子是FPGA上的图像处理的教程。没有给出完整代码,但提供了读取和写入图像的主要部分。请花一些时间来解决这个问题,以便您可以从经验中学习很多。
删除是的,但我无法在语法错误的情况下,即使在写模块中,它会显示相同的错误,如附近"[": expecting: ';',如上所述,我不'知道如何纠正它。
删除这re is also error for parameter in read as well as write module,near "#": expecting: ';'
您需要添加更多代码来使其工作。花一些时间来搞清楚。
删除这段代码非常有用!你能给我发送完整的代码吗?我的电子邮件是[email protected]
回复 删除非常感谢你!
此代码非常有用。请把它寄给我。我的电子邮件是[email protected]
回复 删除谢谢!
你能发给我完整的Verilog代码吗?
回复 删除[email protected]
嘿,
回复 删除这 site is very helpful, can you send me the full verilog code to my email.
[email protected]
你能发送完整的Verilog代码吗?
回复 删除我的电子邮件是[email protected]
谢谢
有人可以发送完整的Verilog代码。我的电子邮件是[email protected]
回复 删除谢谢。
我的名字是锡。我是一名学生,我正在研究FPGA上实施的过滤器罐头。管理员在Canny Filter上有一个项目吗?帮我 。
回复 删除你能发给我吗?
[email protected]
谢谢你
嗨,您的代码非常有用。
回复 删除你能给我发全代码吗?
谢谢你
电子邮件: - [email protected]
你能给我发全部代码吗?
回复 删除[email protected]
嗨,您的代码非常有用。
回复 删除你能给我发全代码吗?
谢谢你
电子邮件: - [email protected]
你能给我发给我fpga的完整Verilog代码吗?
回复 删除谢谢你
电子邮件:[email protected]
嘿,你可以向Xilinx发给我完整的Verilog代码吗?
回复 删除我的电子邮件是[email protected]
你的帮助是赞赏的,谢谢
我正在使用FPGA学习图像处理的基础知识
回复 删除你能告诉我代码吗?
这将是有很大帮助
[email protected]
请在我的电子邮件中发送我的代码[email protected]
回复 删除嗨,我想知道什么"parameter.v" is.
回复 删除惊人...感谢您在线上传此项目。我是FPGA的新手,并尝试在FPGA上学习图像处理。这个项目是启动的理想选择。您能否在[email protected]上与我分享源代码
回复 删除你能给我发给我代码吗?
回复 删除你能给我发给我完整的Verilog代码吗?
回复 删除我的电子邮件:[email protected]
谢谢您的帮助。
嗨,您的代码非常有用,我需要了解更多信息。
回复 删除你能给我发来源代码吗?
电子邮件:[email protected]
您好,我是Xilinx FPGA的项目。
回复 删除目前,我无法在我的项目代码中输入位图。
如果您共享完整代码。我的项目将升级。
你能发给我完整的代码吗?
我的电子邮件地址是[email protected]。
谢谢您的帮助。
您好,我是Xilinx FPGA的项目。
回复 删除目前,我无法在我的项目代码中输入位图。
如果您共享完整代码。我的项目将升级。
你能发给我完整的代码吗?
我的电子邮件地址是[email protected]。
谢谢您的帮助。
你能发给我源代码吗?谢谢你
回复 删除电子邮件:[email protected]
嗨,我会为源代码感到高兴,非常感谢!!
回复 删除巴拉克 [email protected]
嗨,我会为源代码感到高兴,非常感谢!!
回复 删除巴拉克 [email protected]
嗨,首先,非常感谢您提出这些代码。我用它作为参考材料来构建可以反转灰度图像的Verilog代码。您在此处使用System Verilog函数,如$ FOPEN和$ FWIRTE。当我编译程序时,它指出这些系统功能不合成。你有同样的问题吗?
回复 删除$ Fopen和$ FWRITE无法合成。这些用于在PC上编写图像文件进行验证。
删除你好!可以请发送源代码
删除[email protected]
你能给我发全部代码吗?
回复 删除[email protected]
你能给我发给我代码吗?
回复 删除你能分享完整的Verilog代码:[email protected]
回复 删除请您将完整的Verilog代码分享到[email protected]
回复 删除你好面包车,
回复 删除您能否分享完整项目的代码。这对我来说是一个巨大的帮助。
我的电子邮件[email protected]
谢谢
蒙古
此评论已被作者删除。
回复 删除请您能与此页面分享我的代码:
回复 删除我的电子邮件是[email protected]
您好..您的代码对我的项目似乎非常有用。你能把完整的Verilog代码发给我。谢谢..好工作
回复 删除电子邮件:[email protected]
我可以完整编码吗?因为它是我FYP的非常有用的参考,这是在FPGA上实现分形图像压缩的。一旦我获得结果,我可以分享你的完整编码。我的电子邮件是矩阵[email protected]
回复 删除谢谢你 。你的帮助非常欣赏。
豪士岛
回复 删除这对我来说非常有帮助。你也可以考虑发送给我源代码。非常感谢你。我的电子邮件是:[email protected]
真挚地,
Zhiming.
豪士岛
回复 删除这对我来说非常有帮助。你也可以考虑发送给我源代码。非常感谢你。这是我的电子邮件:[email protected]
真挚地,
Zhiming.
你能和我分享这个项目代码吗?这将是一个巨大的帮助。
回复 删除我的电子邮件:[email protected]
你也可以把它邮寄给我......完整的代码...电子邮件:[email protected]
回复 删除嗨,您的代码有用。
回复 删除你能把代码发送给我吗?
非常感谢你。
我的电子邮件:[email protected]
这非常有帮助。你能尽快给我发送整个代码。
回复 删除我的邮件ID是[email protected]
先生,可以使用Verilog HDL共享图像处理的完整代码
回复 删除电子邮件ID:[email protected]
你好
回复 删除我想在我的笔记本电脑中使用图像作为TestBench.I不知道Verilog代码..我的意思是我给出了图像的地址(我的图像保存在我的笔记本电脑中的地址的地址)并从该图像中使用如输入。请帮助我。谢谢你
嗨,你能和我寄给我这个项目吗?谢谢
回复 删除[email protected]
你可以发给我这个项目的完整代码吗?
回复 删除我的邮件id [email protected]
嗨,您的代码在我的项目中非常有用。请您分享完整的Verilog代码。
回复 删除电子邮件:[email protected]
你好先生,你能给我发源代码吗?将是一个巨大的帮助。谢谢
回复 删除我的电子邮件:[email protected]
van,我无法合成代码,因为找不到参数。我该怎么办,你能给我发给我的v文件吗?我是一个新的图像处理
回复 删除van,您可以为我提供Parameter.v文件,因为我收到该部分的错误。
回复 删除亲爱的管理员,
回复 删除我很感激这种知识转移。
请发送MED参数.V文件和其他支持的文件以运行此模拟。
[email protected]
亲爱的管理员,
回复 删除你能把整个项目文件发送到此电子邮件吗?[email protected]
提前致谢。
大家好,因为有很多请求,我更新了这个项目的完整代码。
回复 删除嗨,您的代码对我非常有用。请分享项目我的电子邮件:[email protected]
回复 删除谢谢你。
豪士岛
回复 删除我在处理图像时遇到了麻烦
我可以't看到正确的输出结果
这是我的电子邮件:[email protected]
如果您看到此评论,您可以向我发送电子邮件,以便我可以告诉更多细节。
非常感谢。
如果您有任何疑问,请在[email protected]发送电子邮件
删除有人可以告诉我如何创建十六进制文件吗?
回复 删除阅读教程。有一个matlab代码要这样做。
删除我可以为我的研究获得完整的VHDL代码吗? PLZ.
回复 删除嗨,这是一个很好的资源,非常感谢分享。我正在尝试在Verilog中构建一个代码,可以读取视频文件并分析光谱数据。如果您分享任何知识以及电子邮件为此提供全部源代码,那将是非常有帮助的。我的电子邮件:[email protected]。将非常感谢您的帮助,非常感谢!
回复 删除请邮寄完整的代码。.MY电子邮件ID是[email protected]
回复 删除请邮寄完整的代码。.MY电子邮件ID是[email protected]
回复 删除你好van loi le,代码非常有用。谢谢。你能给我发送完整的Verilog源代码和测试台,你在这里使用的图像
回复 删除您可以帮助其他项目,我有一个与使用Verilog的图像注册相关的项目
我的电子邮件地址是:[email protected]
你好面包车。
回复 删除请你发给我完整的Verilog源文件吗?
这对我来说非常有用。
谢谢你。祝你今天过得愉快。
我的电子邮件是:[email protected]
我还使用Verilog代码进行项目remitration,您可以帮助我吗?