本帖最后由 FPGA课程 于 2024-10-22 19:57 编辑
软件版本:VIVADO2021.1
操作系统:WIN10 64bit
硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA
实验平台:米联客-MLK-H3-CZ08-7100开发板
板卡获取平台:https://milianke.tmall.com/
登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑!
1 视频水印效果算法简介数字图像水印叠加公式为 f=(1-a)f1+aw。原图表示为 f,而水印表示为 w,常熟 a 控制水印和衬底图像的相 对可见性。如果 a 为 1,则水印是不透明的,并且衬底完全是暗的;随着 a 接近 0,会逐渐看到更多的衬底图像和 更少的水印。视频水印效果就是在实时的视频流中添加特定的图片,就是图片叠加在视频流里。我们可以划定一块 区域用于填充水印,把水印图片存储在固定的 RAM 块中,每来一帧图像就刷新一次水印进去。 2 设计分析
2.1Matlab 代码分析
- clear;clear all;clc;
- row = 720; col = 1280; n = 3;
- image_sim_pass = uint8(zeros(row,col,n)); fid = fopen('image_720_ 1280 3 out.txt','r');
- for x = 1:row
- for y = 1:col
- RGB = fscanf(fid,'%s',1);
- image_sim_pass(x,y,1) = uint8(hex2dec(RGB(1:2))); image_sim_pass(x,y,2) = uint8(hex2dec(RGB(3:4))); image_sim_pass(x,y,3) = uint8(hex2dec(RGB(5:6)));
- end
- end
- fclose(fid);
- image_ 1 = imread('lena_ 1280x720.jpg');
- subplot(121);
- imshow(image_ 1), title('The original image');
- subplot(122);
- imshow(image_sim_pass),title('After processing images');
- imwrite(image_sim_pass,'lena_720x1280_sim_pass.jpg');
复制代码
2.2Verilog 代码分析
2.3 工程结构分析
我们将图像视频水印的模块做成 IP 后,在vivado 中进行工程的搭建,工程结构如图所示:
3 仿真及结果
3.1Matlab 实验结果
3.2Modelsim 实验结果
4 搭建 Vitis-sdk 工程
创建 soc_base sdk platform 和 APP 工程的过程不再重复,可以阅读 3-3-01_sdk_base_app。以下给出创建好 soc_base sdk platform 的截图和对应工程 APP 的截图。 4.1 创建 SDK Platform 工程
4.2SDK APP 工程
5 硬件连接硬件连接如图所示:
6 上板实验结果
实验结果如图所示:
|