- 博客(300)
- 收藏
- 关注
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-25FPGA 实现基于帧差法的目标检测
首先,将相邻帧图像对应像素相减得到差分图像,然后进行图像二值化,在环境亮度变化不大的情况下,如果对应像素变化小于阈值时,那么就为背景像素。如果图像区域的像素变化很大,认为这是图像中运动物体引起的,将这些区域标记为前景像素,利用标记的像素区域就可以确定运动目标在图像中的位置。由于相邻两帧间的时间短,用前一帧图像作为当前帧的背景有较好的实时性,更新速度快、算法简单、计算量小。同时算法不足是对环境噪声十分敏感,阈值的选择很关键,选择小了不能抑制图像中的噪声,高了则忽略了图像中的变化。
2024-10-22 19:58:34
439
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-24FPGA 实现基于肤色识别的人脸检测
基于YCbCr 颜色空间的肤色识别,将图像转换到YCbCr 颜色空间,然后按下述计算式判断是否属于皮肤域:(Cb > 77 and Cb7< 127) and(Cr > 133 and Cr < 173)肤色识别算法计算量小,算法实践简单,缺点也很明显,容易受到外界背景干扰。
2024-10-22 19:57:10
563
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-23FPGA 实现视频水印效果处理
数字图像水印叠加公式为f=(1-a)f1+aw。原图表示为f,而水印表示为w,常熟a控制水印和衬底图像的相对可见性。如果a为 1,则水印是不透明的,并且衬底完全是暗的;随着 a接近0,会逐渐看到更多的衬底图像和更少的水印。视频水印效果就是在实时的视频流中添加特定的图片,就是图片叠加在视频流里。我们可以划定一块区域用于填充水印,把水印图片存储在固定的RAM 块中,每来一帧图像就刷新一次水印进去。
2024-10-22 19:56:49
388
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-22FPGA 实现图像浮雕效果处理
浮雕效果就是为了突出图像中的变化部分,降低图像中相似的部分,使图像中出现纵深感,以达到浮雕的效果。一般的处理流程是,将要处理的像素点的左上角像素与右下角的像素做差值然后加上128,大于255 就把该像素换成255,小于0 则换成0,其他的不做任何处理。
2024-10-22 19:56:29
415
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-21FPGA 实现图像灰度形态学梯度边缘提取处理
灰度图像的腐蚀和膨胀实际上是用滑动模板去遍历图像中的每一个元素,并用这个区域中的最大值或最小值去代替窗口中的某个元素值,若取得是最大值,则是膨胀操作,若取得是最小值,则是腐蚀操作。在窗内求最大值或最小值时,只有元素值不为0的位置才参与求最大值或最小值。
2024-10-22 19:56:09
778
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-20FPGA 实现图像二值化轮廓提取处理
二值化轮廓提取可以显著的提取出二值图像中的物体特征,对于识别和分析图像内容提供了方便。以3x3的滑动模板,具体操作是当图像中的九个像素全为白色(“1”)或全为黑色(“0”)时输出为黑色(“0”),其他输出白色 (ℼ1”),这样就可以将图中物体的轮廓使用白色线条描述出来。
2024-10-21 18:45:33
414
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-19FPGA 实现图像二值化闭运算处理
闭运算是就是先进行膨胀然后进行腐蚀,这样操作后可以使得原本未连接在一起的区域,变成了连通的区域。主要针对细小的突起、细的连接线、图像中的弯口、孤立的小块或齿状物体的效果明显。
2024-10-21 18:45:01
428
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-18FPGA 实现图像二值化开运算处理
开运算就是先进行腐蚀然后进行膨胀,这样操作后可以使得原本连接在一起的区域,变成了不连通的区域。主要针对细小的突起、细的连接线、图像中的弯口、孤立的小块或齿状物体的效果明显。
2024-10-21 18:44:42
480
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-17FPGA 实现图像二值化膨胀处理
膨胀操作是形态学图像处理的基础。膨胀操作是“生长”或“变粗”二值图像中的物体。以3x3的滑动模板为例,具体操作是当这九个像素点只要有一个白色(“1”)时输出白色(“1”),仅当九个像素点全为黑色(“0”)时输出黑色(“0”)。使用逻辑或运算进行操作,就可以实现膨胀的效果。
2024-10-21 18:44:20
390
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-16FPGA 实现图像二值化腐蚀处理
腐蚀操作是形态学图像处理的基础。腐蚀操作是“收缩”或“细化”二值图像中的物体。以3x3的滑动模板为例,具体操作是当这九个像素点全为白色(ℼ1”)时输出白色(“1”),否则输出黑色(“0”)。使用逻辑与运算进行操作,就可以实现腐蚀的效果。
2024-10-19 16:08:26
337
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-15FPGA 实现图像OTSU 二值化处理
Otsu(大津法)算法是由日本学者OTSU于 1979年提出的一种对图像进行二值化的高效算法。原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大,是二值化的最佳全局阈值的算法。
2024-10-19 16:08:01
1164
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-14FPGA 实现图像 sobel 算子边缘提取处理
所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据。由于边缘是位置的标志,对灰度的变化不敏感,因此,边缘也是图像匹配的重要的特征。sobel算子利用像素点上下左右四个方向像素权重算法,根据在边缘点处达到极值 这一现象进行边缘检测。Sobel 算子对噪声具有平滑作用,提供较为精确的边缘方向信息,是一种较为常见的边缘检测方法。
2024-10-19 16:07:38
589
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-13FPGA 实现图像拉普拉斯边缘提取处理
拉普拉斯提取边缘属于使用二阶导提取边缘,它是一种各向同性的边缘提取算子。各向同性和就是指使用这一个算子,就能对任何走向的界线和线条锐化,无方向。但他的缺点相比于一阶微分对噪声敏感。它对孤立像素的响应要比边缘或线的响应更强烈,因此只适用于无噪声图像。一般在使用拉普拉斯算子提取边缘之前,先使用高斯平滑图像,这一过程就称为log 算子,
2024-10-19 16:07:10
784
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-12FPGA 实现图像拉普拉斯锐化处理
图像的拉普拉斯锐化是根据图像每个像素领域内的像素到该像素的突变程度来计算的,计算的是图像像素的变化程度。我们知道,一阶微分函数描述了函数图像是朝哪个方向变化的,或增长或降低。二阶微分函数描述的则是图像变化的速度,是急剧增长(下降)还是平缓的增长(下降)。根据上述的描述,可以知道二阶微分可以得到图像色彩的过渡程度,比如白色与黑色的过渡。
2024-10-18 17:31:13
657
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-11FPGA 实现图像高斯滤波处理
高斯滤波在图像处理的概念下,将图像频域处理和时域处理相联系,作为低通滤波器使用,可以将低频能量滤去,起到图像平滑作用。高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的降噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和模板邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(3x3、5x5)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
2024-10-18 17:30:57
975
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-10FPGA 实现图像中值滤波处理
在图像滤波中,常用的方法是线性滤波技术和非线性滤波技术,线性滤波技术以其完美的理论基础,数学处理简单、易于采用和硬件实现等优点,一直在图像滤波领域中占有重要的地位。线性滤波对加性高斯噪声有较好的平滑作用,但对脉冲信号和其他形式的高频分量抑制效果较差,且模糊信号边缘。
2024-10-18 17:30:37
700
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-9FPGA 实现图像均值滤波处理
均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y) = Σf (x,y)/mm 为该模板中包含当前像素在内的像素总个数。图像处理的模板在上一讲介绍过,3x3或5x5的模板都可以用于均值滤波。
2024-10-18 17:29:59
432
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-8FPGA 实现图像 3x3_5x5 算子模板
在图像处理过程中,常常需要对图像进行滤波操作,进行滤波操作需要使用算子模板,也可以称之为扫描窗模板,一般有3x3、5x5、7x7 等模板形式。本文重在阐述算子模板的概念及使用verilog 来描述其产生过程。下面咱们从图像上来认识算子模板。
2024-10-17 13:27:21
811
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-7FPGA 实现图像中心差分变换
差分图像就是目标场景在连续时间点图像相减所构成的图像,广义的差分图像定义为目标场景在时间点 tk 和tk+L 所成图像的差别。差分图像是由目标场景在相邻时间点的图像相减得到的,从而能够得到目标场景随时间的变换。差分图像在许多领域得到了广泛的应用,比如:视频压缩,生物医学诊断,天文学,遥感,人脸识别等。
2024-10-17 13:26:52
477
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-6FPGA 实现图像 Gamma 伽马变换
伽马变换主要用于图像的校正,将灰度过高或者灰度过低的图片进行修正,增强对比度,简单的说就是让图像从曝光强度的线性响应变得更接近人眼感受的响应。变换公式就是对原图像上每一个像素值做乘积运算:g= c*rY
2024-10-17 13:25:42
826
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-5FPGA 实现图像 log 对数变换
对数变换可以将图像的低灰度值部分扩展,显示出低灰度部分更多的细节,将其高灰度值部分压缩,减少高灰度值部分的细节,从而达到强调图像低灰度部分的目的。图像对数变换一般公式为:g =c*log(1 +f)其中c 为常数系数,f为像素值范围0~255。
2024-10-17 13:25:07
388
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-4FPGA 实现彩色图像转灰度图像
日常生活中遇到的图像基本都是彩色图像,在工业应用领域常常需要将彩色图像转换成灰度图像。彩色图像是三个通道RGB,灰度图像只有一个通道。彩色转灰度比较简单的方法就是直接拿RGB中的一个通道来显示灰度图像,这种方法简单且不做任何的处理。下面介绍几种常用的求取灰度图像的方法:1、平均法2、加权均值法3、最大最小平均法4、二值图像5、反转图像
2024-10-16 18:57:53
539
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-3FPGA 实现色彩空间转换 RGB—YCbCr
RGB、YUV 和YCbCr 都是人为规定的色彩空间。其用途是在某些标准下以通用化的方式对彩色进行描述。本质上,彩色模型是坐标系统和子空间的描述。
2024-10-16 18:57:34
1100
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-2FPGA 实现 CMOS 图像采集_ov5640
说到OV5640OV7725 等入门级摄像头大部分读者应该并不陌生,这些摄像头基础成为教学实验开发板必配摄像头。如下图所示,为我们米联客提供的OV5640摄像头,采用的是DVP 接口。通过普通的连接器接入到开发板的的FPGA IO实现数据采集。
2024-10-16 18:57:04
1034
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_图像入门连载-1图像及其数字处理
Matlab(matrix laboratoty)是目前国际上使用的科学与工程计算机软件。现在已经发展为集数值运算、符号运算、数据可视化、图形界面设计、程序设计、仿真等功能于一体的集成软件。
2024-10-16 18:56:36
638
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-12AXI-Stream 发数据到 PS(DMA)
本文在 AXI_DMA_LOOP环路测试架构的基础上,在 DATAFIFO端加入 FPGA代码,对 FIFO写,实现将PL端数据 通过 DMA发送给PS功能。本文实验目的:1:掌握编程PL代码,以AXI-Stream协议把数据通过DMA发送到PSDDR2:通过VITIS-SDK编程实现数据的接收3:通过VITIS-SDK观察PS内存中接收到的数据是否正确。
2024-10-15 18:44:00
722
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-11AXI-Lite 自定义 AXI_GPIO
本文实验目的:1:通过前文的学习,把掌握的自定义AXI-LITE-SLAVE寄存器读写方法,用于引出扩展PL的IO2:通过VITIS-SDK实现对自定义IP中寄存器的读写访问,以此实现PL IO的控制。
2024-10-15 18:43:25
758
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-10PL 读写 PS 端 DDR(FDMA)
本文实验目的:1:利用米联客自定一定 FDMA2.0/3.0 版本搭建 SOC 工程(最新发布的版本是 3.0)2:编写 FPGA 测试代码实现,PL 写入数据到 PS DDR 然后再读出 PS DDR 中的数据,对比是否正确。为了让 PS 的 DDR 可以运行,必须新建一个 vitis-sdk 工程,这个工程主要是为了初始化 PS DDR,我们可以简单 新建一个自带的hello 工程。
2024-10-15 18:43:00
1054
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-09 使用 fdma 读写 DDR
在前文的实验中我们详细介绍了FDMA的使用方法,以及使用了AXI-BRAM演示了FDMA的使用,现在我们已经掌握了FDMA的使用,本文我们继续使用FDMA实现对AXI-MIG的读写,以此读写DDR。由于FDMA的读写操作都是基于AXI总线,所以用户代码部分一致性也非常好,我们的状态机都不需要做修改,基本上只要把前文的BRAMIP换成MIGIP即可。本文实验目的:1:利用uiFDMA3.0提供的接口,编写DDR测试程序2:对MIG接口读写仿真
2024-10-15 18:42:27
477
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-08 使用 fdma 读写 axi-bram
基于FDMA可以完成很多数据读写存储类的应用,本文将展示通过FDMA读写AXI-BRAM 本文实验目的:1:掌握基于uiFDMA3.0的FPGA工程设计2:利用uiFDMA3.0提供的接口,编写BRAM测试程序3:对AXI-BRAM读写仿真和测试
2024-10-14 18:33:55
751
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-07AXI4-FULL-MASTER IP FDMA 详解
1:分析FDMA源码,掌握基于FDMA的APP接口实现AXI4-FULL总线接口的访问。2:掌握自定义总线接口封装方法3:自定义AXI-FULL-SlaveIP用于验证FDMA的工作情况。
2024-10-14 18:28:57
903
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-06AXI-Lite-Master 读写 AXI-Lite-Slave
本文实验目的:1:修改VIVADO产生的saxi-lite- gpio模板,增加GPIO的定义2:修改VIVADO产生的maxi-lite-gpio模板,增加对saxi-lite- gpio寄存器的读写操作。3:进一步掌握基于vivado实现的ip的封装
2024-10-14 18:28:32
664
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-05AXI4 总线 axi-stream
本文实验目的:1:掌握基于VIVADO工具产生AXI协议模板2:掌握通过VIVADO工具产生AXI-Stream代码3:掌握通过VIVADO封装AXI-Stream图形化IP4:通过仿真验证AXI-StreamIP的工作是否正常。
2024-10-14 18:28:04
956
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-04AXI4 总线 axi-full-master
本文实验目的:1:掌握基于VIVADO工具产生AXI协议模板2:掌握通过VIVADO工具产生AXI-full-master代码3:理解AXI-full-master中自定义寄存器的地址分配4:掌握通过VIVADO封装AXI-full-slave图形化IP5:通过仿真验证AXI-full-master IP的工作是否正常。
2024-10-12 16:18:55
933
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-03AXI4 总线 axi-full-slave
本文实验目的:1:掌握基于VIVADO工具产生AXI协议模板2:掌握通过VIVADO工具产生AXI-full-slave代码3:理解AXI-full-slave中自定义寄存器的地址分配4:掌握通过VIVADO封装AXI-full-slave图形化IP5:通过仿真验证AXI-full-slave IP的工作是否正常。
2024-10-12 16:18:34
678
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-02AXI4 总线 axi-lite-master
本文实验目的:1:掌握基于VIVADO工具产生AXI协议模板2:掌握通过VIVADO工具产生AXI-lite-master代码3:理解AXI-lite-master中自定义寄存器的地址分配4:掌握通过VIVADO封装AXI-lite-master图形化IP5:通过仿真验证AXI-lite-master IP的工作是否正常。
2024-10-12 16:18:03
987
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_AXI总线入门连载-01AXI4 总线 axi-lite-slave
本文实验目的:1:学习AXI总线协议包括AXI-FULL、AXI-Lite2:掌握基于VIVADO工具产生AXI协议模板3:掌握通过VIVADO工具产生AXI-lite-Slave代码,并且会修改寄存器4:理解AXI-lite-Slave中自定义寄存器的地址分配5:掌握通过VIVADO封装AXI-LITE-SLAVE图形化IP 6:通过仿真验证AXI-LITEIP的工作是否正常。
2024-10-12 16:17:28
998
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_SDK高级篇连载-24 基于 TCP 的远程更新固件方案
本例程实现了一种基于 TCP 协议的 Flash bin 文件更新方法。一方面,在较大程度上提高了 bin 文件的烧写速度 (4MB 大小 bin 文件可缩短至 20 秒左右);另一方面,提供了一种远程更新 Flash 的方法,可脱离 JTAG 接口,同 时避免固件升级时对产品进行拆解。
2024-10-11 17:28:37
1028
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_SDK高级篇连载-23基于AMP的双核方案
ZYNQ 中存在两个独立的 ARM 核,在很多应用场景中往往只需使用其中的 1 个核心即可。然而,对于复杂的设计,例如多任务,并行控制、处理等,单个核心将难以胜任。因此,为了尽可能发挥 ZYNQ 中双 ARM 核的优势和性能,进行双核应用的开发显得尤为重要。同时,也进一步为 Xilinx 下一代 MPSOC 多核异构处理器的使用打下基础。
2024-10-11 17:27:36
1055
原创 [米联客-XILINX-H3_CZ08_7100] FPGA_SDK高级篇连载-22FreeRTOS 实时操作系统方案
FreeRTOS 是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、 信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。 由于 RTOS 需占用一定的系统资源(尤其是 RAM 资源),只有 μC/OS-II、embOS、salvo、FreeRTOS 等少数实时 操作系统能在小 RAM 单片机上运行。相对 μC/OS-II、embOS 等商业操作系统,FreeRTOS 操作系统是完全免费的 操作系统,具有源码公开、可移植、可裁减、调度策略灵
2024-10-11 17:27:06
1008
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人