DSP教学实验箱操作教程_数字图像处理:5-5 灰度图像直方图

DSP实验 直方图均衡化     折腾了一天,终于搞明白原理,把程序也调通了,真是惭愧,基础实在太差。    直方图均衡化的原理很简单,利用概率中的累积函数的性质,达到映射的目的,改变原图像的灰度分布,使之近似的均匀。    这是我在网上找的:   这是我的程序:    float p[256];    float c[256];    Uint16 *ps,*tmp;    ps=(U 阅读详情

一、实验目的

学习直方图统计的原理,掌握图像的读取方法,并实现灰度图像的直方图统计结果。

二、实验原理

灰度直方图

灰度直方图是关于灰度级分布的函数,是对图像中灰度级分布的统计。它是将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。因此灰度直方图是灰度

级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。

直方图是用来整理计量值的观测数据,分析其分布状态的统计方法,用于对总体的分布特征进行推断。直方图的作用如下:

(1)检验数据分布的类型,分析数据是否服从正态分布,判断数据有无异常;

(2)与产品规格界限做比较,可直观地判断分布中心是否偏离规格中心,以确定是否需要调整并求出其调整量;还可判断数据分布的散差(分布范围)是否满足规格范围的要求,以确定是否采取缩小散差的技术性措施;

(3)用于进行过程能力调查和不合格品率估计;

(4)客观地反映操作者的技术水平和主观努力程度。

从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分。也可以直接从代表每种灰度的象素数目的直方图来观察。

image.png

image.png

灰度直方图的计算是很简单的,依据定义,若图象具有L(通常 L=256,即 8 位灰度级)

级灰度,则大小为MxN 的灰度图象 f(x,y)的灰度直方图 hist[0…L-1]可用如下计算获得:

(1)初始化 hist[k]=0 ; k=0,…,L-1

(2)统计 hist[f(x,y)]++ ; x, y =0,…,M-1, 0,…,N-1

(3)标准化 hist[f(x,y)]/=M*N

程序设计

程序流程设计中首先要读取工程目录下的BMP图像,接着进行直方图统计,最后保存统计结果。

image.png

视频分析与视觉库

VLIB 是一个TI 的软件库,可加速视频分析开发并将性能提高多达 10 倍。VLIB 是针对 C6x DSP 内核优化的可扩展库。包括的40 多个内核的集合可以实现背景建模与减法、对象特征提取、追踪与识别和低级像素处理。

包括适用于C64x+、C674x 和 C66x 处理器的 Windows 和 Linux 安装可执行文件。每个可执行文件安装一个组件包存储库、一个文档目录、一个 Eclipse 插件目录和一个扩展的组件目录结构,其中包含组件库、头文件和测试示例。

TMS320C6748处理器使用的是vlib_c674x_3_3_2_0。

本实验中的直方图统计算法是基于TI提供的视频分析与视觉库完成的。 VLIB 包含可以实现背景建模与减法、对象特征提取、追踪与识别和低级像素处理的40多个内核。 调用这些例程可加速视频分析开发并将性能提高多达 10 倍。实验中使用的是vlib_c674x_3_3_2_0。

将VLIB安装到CCS5.5 的安装路径,安装完成后会有相应的文件夹出现。源码所在路径:\vlib_c674x_3_3_2_0\packages\ti\vlib\src

image.png

实验源码

初始化缓存

使用 VLIB 的库来为直方图计算进行缓存初始化。使用时,直接调用“VLIB_histogram_1D_Init_U8.h”文件 即可。

API 接口

VLIB_histogram_1D_Init_U8(const uint8_t *restrict binEdges,const int32_t numBins,

uint8_t *restrict histArray);

程序使用 VLIB 的库来进行灰度直方图统计前的缓存初始化,调用的程序源码和使用说明可以安装VLIB后查看。调用的初始化函数中,第一个参数是直方图的边界值,第二个参数是直方图的区间数。第三个参数是内部使用的缓冲器。

image.png

直方图计算

使用 VLIB 的库来从 8 位无符号整数数组计算直方图。使用时,直接调用“VLIB_histogram_1D_U8.h”文件 即可。

API 接口

VLIB_histogram_1D_U8(const uint8_t *restrict X, const int32_t numX,const int32_t numBins,const uint16_t binWeight,const uint8_t *restrict histArray,uint16_t *restrict H1,uint16_t *restrict H2,uint16_t *restrict H3,uint16_t *restrict H);

程序使用 VLIB 的库来进行灰度直方图统计,调用的程序源码和使用说明可以安装VLIB后查看。调用的直方图统计函数中,第一个参数是输入图像的数组,第二个参数是输入图像数组的元素个数。第三个参数是直方图的区间数。第四个参数是直方图中该区域的像素增量。第五个参数是指向内部使用的缓冲器。第六~第八个参数是指向内部使用的数组。第九个参数是用来保存直方图计算结果的数组。

image.png

三、操作现象

本实验所需硬件为实验板、仿真器和电源。

image.png

硬件连接

(1)连接仿真器和电脑的USB接口,

(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

image.png

软件操作

导入工程,选择Demo文件夹下的对应工程

编译工程,生成可执行文件

将CCS连接实验箱并加载程序

程序加载完成后点击运行程序

运行程序后,CCS的Console窗口会打印相关信息。

稍等片刻后,处理完成,程序执行完成后会在断点处停下。

可以通过CCS 的图像显示窗口查看原始灰度图像。

点击工具,选择图像分析工具。在弹出的Image 窗口中右击鼠标,在弹出的菜单栏中选择"Import Properties",选择工程目录下的HIST.txt 配置文件,选择后等待图片加载,加载完成后显示原图片。

txt 配置文件是提前配置好的图像属性,在 Properties 属性可看到 HIST.txt 文件的设置参数。

点击CCS 菜单"Tools->Graph->Single Time",在弹出的界面中设置相关参数,可查看直方图计算的结果。

点击"Window->Show View->Expressions",输入 H 变量,可观察 H 变量的数值。

实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

image.png

(完整版)数字图像处理MATLAB程序 输入一幅灰度图像,给出其图像经3*3中值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行排序后取中值,然后该点的灰度值取中值。再调用相应的图像缩放函数,设置参数;在视频显示任务的循环中,程序首先将视频数据从输入缓冲区读入自己开设的临时图像处理缓冲区,再在临时图像处理缓冲区上进行处理,处理后的数据再输出到输出缓冲区。在matlab环境中,程序首先读取图像,然后调用图像边缘检测(Sobel、Prewitt、Log边缘算子)函数,设置相关参数,再输出处理后的图像。 阅读详情

相关推荐

数字图像梯形畸变校正

<br />数字图像处理的课题报告打算做个图像畸变校正方向的,忙了几天把matlab仿真程序做出来了,下一步使用VC来实现这个过程!<br />这里先把程序贴出来以备后用!<br />梯形畸变的校正流程:直方图均衡---》垂直边缘检测----》开操作---》radon变换求极值---》求检测直线---》取点---》校正<br />matlab代码如下:<br />clc ;%清屏<br />clear all ;%清内存<br />%读取原图像<br />img=imread('大楼1.bmp') ;<br

清闲老窝的专栏 1万+

嵌入式操作教程_DSP教学实验箱:5-6 灰度图像直方图(LCD显示)

从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数 pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分。调用的初始化函数中,第一个参数是直方图的边界值,第二个参数是直方图的区间数。灰度直方图的计算是很简单的,依据定义,若图象具有 L(通常 L=256,即 8 位灰度级)级灰度,则大小为 MxN 的灰度图象 f(x,y)的灰度直方图 hist[0…使用VLIB 的库来为直方图计算进行缓存初始化。

Tronlongtech的博客 445

42、数字图像处理与数字信号处理器知识详解

本文详细介绍了数字图像处理的基础知识,包括图像分辨率、颜色空间转换、图像增强与压缩技术,以及视频处理中的关键概念。同时深入探讨了数字信号处理器(DSP)的架构特点,对比了冯·诺依曼与哈佛架构的差异,解析了DSP核心硬件单元如乘法累加器和移位器的作用。文章还涵盖了定点与浮点格式的区别及其在DSP中的应用,并通过C语言示例展示了FIR和IIR滤波器的实现方法。最后结合TMS320C67x DSK开发板介绍了实时信号处理的应用场景,为读者提供全面的理论与实践指导。

n7o8p的博客 90

DSP VLIB 3_3_2_0

VLIB 3_3_2_0 建立日期:08142018 发布信息 这是针对C64x + / C674x / C66x处理器的视觉库(VLIB)的GA版本。 VLIB是德州仪器(TI)的40多个免版税内核的软件库,可加速视频分析开发并将性能提高10倍。VLIB是针对C6x DSP内核进行了优化的可扩展库,可免费使用。该40多个内核的集合提供了执行以下功能的能力: 背景建模与减法 对象特征提取 跟踪与识别 低级像素处理 此版本中的交付物包括适用于C64x +,C674x和C66x处理器...

smartvxworks的博客 418

基于DSP技术的数字图像处理详解与实战

机器视觉系统是自动化领域中一个重要的分支,其目标是使机器具有类似人类的视觉功能,能够处理和理解图像和视频信息。机器视觉系统通常用于检测、测量和视觉引导等任务,在产品质量检测、自动装配、机器人导航等多个自动化领域有着广泛的应用。

weixin_42351520的博客 1101

DSP图像处理技术及应用

数字信号处理器(DSP)是一种专门设计用于快速执行数学运算的微处理器,尤其适合执行乘法和累加等操作,这些操作对于数字信号处理至关重要。DSP在图像处理、音频处理和通信等领域中发挥着中心作用。其核心优势在于提供了高度优化的指令集,能够实现复杂的数学计算,从而在实时性要求高的应用场景中实现高速数据处理。DSP之所以能在图像处理领域大放异彩,得益于其几个关键特性:高运算速度、低延迟处理能力以及在专用指令集支持下执行复杂算法的高效性。

weixin_35755434的博客 1201

DSP教学实验箱_数字图像处理操作_案例分享:5-13 灰度图像二值化

在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为 0 或 255 的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。点击工具,选择图像分析工具。缺点: 因为这个阈值在不同的图片中均为127,但是不同的图片,他们的颜色分布差别很大,所以用127做阈值,效果肯定是不好的。

Tronlongtech的博客 1246

DSP图像处理项目实战:swi_hook_2_dsp与CCS开发

htmltable {th, td {th {pre {简介:本项目专注于数字信号处理器(DSP)上的图像处理应用,利用TI的Code Composer Studio(CCS)开发环境,通过软件中断(SWI)机制实现图像处理功能。包含可在CCS和DSP硬件上编译运行的源代码,是初学者学习数字信号处理应用编程(DAP)的优秀案例。项目涵盖了图像增强、去噪、边缘检测等DSP图像处理算法,并通过实践提升嵌入式系统开发及调试技能。

weixin_42601547的博客 357

嵌入式教程_DSP教学实验箱操作:5-14 灰度图像二值化(LCD显示)

在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为 0 或 255 的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。缺点: 因为这个阀值在不同的图片中均为127,但是不同的图片,他们的颜色分布差别很大,所以用127做阀值,效果肯定是不好的。(1)连接仿真器和电脑的USB接口,

Tronlongtech的博客 1106

vlib_c66x_obj_3_3_0_3_Win32 && vlib_c66x_obj_3_0_0_7_Win32.zip

DSP图像处理视觉库,有很多可以用的函数,相对IMGlib,函数更多,更全面,希望对DSP图像处理的研究有意义。

数字IC设计随笔之二(VCS、DVE|Verdi单步调试)

VCS+Verdi单步调试

ic疾风传 1万+

基于matlab GUI的数字图像处理系统

本文设计了一个基于MATLAB的数字图像处理系统,实现了图像文件操作、变形处理、噪声处理、增强变换等功能。系统采用GUI界面设计,支持灰度与彩色图像处理,通过参数化对话框提高操作灵活性。研究发现,RGB图像处理需进行三维矩阵降维处理,同时需区分灰度与彩色图像的操作限制。实验结果表明,系统能有效完成边缘检测、滤波等操作,但存在对函数适用范围考虑不足的问题。未来可优化图像处理算法,增强系统的鲁棒性和适用范围。

毕业作品网站 6302

AD9361数字调制入门:从IQ调制原理到动手实现第一个ASK信号(Vivado工程详解)

本文详细介绍了如何使用AD9361射频收发器实现ASK数字调制,从IQ调制原理到Vivado工程实现。通过Verilog代码示例和FPGA架构设计,帮助开发者理解纯逻辑实现数字调制解调的关键技术,特别适合软件无线电(SDR)初学者入门实践。

weixin_29158047的博客 374

基于(完整版)数字图像处理MATLAB程序【完整版】

输入一幅灰度图像,给出其图像经3*3中值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行排序后取中值,然后该点的灰度值取中值。再调用相应的图像缩放函数,设置参数;在视频显示任务的循环中,程序首先将视频数据从输入缓冲区读入自己开设的临时图像处理缓冲区,再在临时图像处理缓冲区上进行处理,处理后的数据再输出到输出缓冲区。在matlab环境中,程序首先读取图像,然后调用图像边缘检测(Sobel、Prewitt、Log边缘算子)函数,设置相关参数,再输出处理后的图像。

2401_84462152的博客 1387

RouterOS v7.6实战:5分钟搞定IPv6双栈配置(含光猫桥接避坑指南)

本文详细解析了在RouterOS v7.6系统中配置IPv6双栈网络的实战步骤,特别针对家庭网络光猫桥接模式下的常见问题提供了避坑指南。文章涵盖了从基础配置到企业级部署的进阶内容,包括IPv6前缀获取、DHCPv6客户端设置、路由通告以及安全优化,帮助用户充分利用v7.6版本在IPv6支持上的改进与优势。

embedding5hiker的博客 1283

保姆级教程:用rosbag录制和回放你的第一个ROS机器人数据(附C++/Python代码)

本文提供了一份详细的ROS机器人数据录制与回放教程,涵盖从命令行操作到C++/Python编程实现的全流程。通过rosbag工具,开发者可以高效记录和回放机器人运行时的传感器数据和控制指令,适用于故障复现、算法调试等多种场景。教程还包含高级技巧如时间同步和大文件处理,帮助用户快速掌握ROS数据管理核心技能。

weixin_29313239的博客 285

直方图均衡化硬件实现:从映射函数到FPGA/ASIC电路设计

直方图均衡化是数字图像处理中用于增强对比度的经典算法,其核心在于通过累积分布函数(CDF)构建灰度映射表(LUT)。从原理上看,算法通过重新分布像素灰度值,使输出图像的直方图近似均匀,从而拉伸动态范围、揭示更多细节。这一过程在软件中通常通过库函数快速实现,但其计算本质——特别是映射函数的生成——蕴含着硬件优化的巨大潜力。在工程实践中,将算法映射到硬件(如FPGA或ASIC)能实现极低的处理延迟和功耗,满足嵌入式视觉、实时视频流等高性能场景的需求。本文聚焦于该算法的硬件友好性改造,深入探讨如何将除法、浮点运算

weixin_30291791的博客 407

【Halcon-2D测量】set_metrology_object_param 函数功能(用于配置计量对象常规参数)

HALCON算子 set_metrology_object_param 是2D计量模块的核心配置工具,用于动态修改计量对象的测量区域、边缘检测和几何拟合参数。该算子需在检测前调用,支持批量或单独修改对象参数,包含三类关键参数:测量区域(如长度、间距)、边缘检测(如平滑Sigma、阈值)和几何拟合(如RANSAC阈值、最小分数)。使用时需注意参数互斥规则(如measure_distance优先于num_measures)和多线程同步要求。算子无输出参数,仅修改计量模型内部状态,需配合apply_metrolo

weixin_45590420的博客 294

数字图像处理基础与应用全解析

数字图像处理是通过计算机对图像进行分析与处理的技术,其核心在于将图像转换为数字矩阵进行处理。基本原理涉及图像获取、增强、复原等流程,关键技术包括小波变换、形态学处理和深度学习算法。在工程实践中,这项技术显著提升了医学影像诊断、工业检测等领域的效率与精度。随着GPU加速和边缘计算的发展,实时图像处理能力得到大幅增强。当前热门的卷积神经网络(CNN)和生成对抗网络(GAN)正在推动图像识别与生成技术的边界,而多模态融合则为自动驾驶、医疗AI等新兴应用提供了更丰富的视觉信息。

chaoyv 373

Nvidia Jetson平台 JP4.2.1版本GStreamer视频采集异常问题调试记录

Nvidia Jetson平台GStreamer in JP4.2.1不能采集但是 v4l2-ctl和 ffmpeg能正常采集视频。

jzwjzw19900922的博客 2127

CATIA二次开发一一一装配体与零件之间的坐标转换

输入参数:Product(产品实例对象)、iPointToTransfor(待转换坐标点CATMathPoint)核心逻辑:通过产品对象的绝对位置变换矩阵,计算逆向变换实现坐标系转换。输出参数:Point(转换后的局部坐标点CATMathPoint)

工业软件开发 1132

python在电力系统中的应用_回顾那些年学过的数模电,用Python打开新思路

原标题:回顾那些年学过的数模电,用Python打开新思路本文转自FPGA2嵌入式作者:做但不能忘思考0.概述做FPGA开发或者是嵌入式开发,数字图像处理是一个很大的领域,回顾下大学里学的模电、数电、单片机原理、数字图像处理、通信理论、MATLAB,目前比较前沿的Python等知识联系起来,能更好的指明人生规划的方向。1.模拟电路都记得我们大学学习的一门课程,模拟电路吗?难,枯燥,又感觉没有鬼用。但...

weixin_39915081的博客 463

AutoSAR配置与实践(基础篇)3.2 BSW中的I/O架构和模块详解

车门位置传感器(Sensor SWC)输出的电流信号经过了一系列处理,如先被转化为电压信号,后又经ADC转换为数字信号,但是IoHwAb模块对上层隐藏了这一系列处理过程,并将数据直接抽象为它的输出接口,即车门开关状态接口。Sensor SWC 使用RTE接口直接从IoHwAb模块封装的车门开关状态,SWC它并不关心ECU硬件是如何实现的传感器电流采集,也不关心MCU ADC采样精度(如10/12位)IoHwAb把采集的电压抽象为开关状态,使得Sensor SWC不依赖具体的ECU硬件。

nihaoljq2010的博客 1300

python列表转化为数字信号_数字图像是怎么通过模拟转为数字的?

0. 概述做FPGA开发或者是嵌入式开发,数字图像处理是一个很大的领域,回顾下大学里学的模电,数电,单片机原理,数字图像处理,通信理论,MATLAB,目前比较前沿的Python等知识联系起来,能更好的指明人生规划的方向。1. 模拟电路都记得我们大学学习的一门课程,模拟电路吗?难,枯燥,又感觉没有鬼用。但其实它是模拟世界到数字世界的一道桥梁,模拟信号到数字信号01。我们现在想想,数字图像是怎么通过...

weixin_39728320的博客 429

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: DSP C6000教学实验箱操作教程_数字图像处理:5-3 图像缩放
下一篇: 国产Cortex-A55人工智能教学实验箱_基于Python机械臂跳舞实验案例分享
Tronlongtech
博客等级 码龄4年 687粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值