OpenCV与Linux基础知识

OpenCV使用优化了的C和C++代码实现。它对IPP不存在任何依赖。但如果安装了IPP,那么OpenCV将会通过自动载入IPP动态链接库来获取IPP的优势,来提升速度。

 

…/opencv/docs/子目录中有相应的HTML格式的帮助文件。

 

图像处理的腐蚀膨胀

 

腐蚀的具体操作是:用一个结构元素(一般是3×3的大小)扫描图像中的每一个像素,用结构元素中的每一个像素与其覆盖的像素做“与”操作,如果都为1,则该像素为1,否则为0。 

膨胀的具体操作是:用一个结构元素(一般是3×3的大小)扫描图像中的每一个像素,用结构元素中的每一个像素与其覆盖的像素做“与”操作,如果都为0,则该像素为0,否则为1。

 

腐蚀的作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点;膨胀的作用是将与物体接触的所有背景点合并到物体中,使目标增大,可添补目标中的空洞。

 

图像处理的开运算闭运算

开运算是先腐蚀后膨胀的过程,可以消除图像上细小的噪声,并平滑物体边界。 

闭运算时先膨胀后腐蚀的过程,可以填充物体内细小的空洞,并平滑物体边界。

 

图像细化一般作为一种图像预处理技术出现,目的是提取源图像的骨架,即是将原图像中线条宽度大于1个像素的线条细化成只有一个像素宽,形成“骨架”,形成骨架后能比较容易的分析图像,如提取图像的特征。

 

细化基本思想是“层层剥夺”,即从线条边缘开始一层一层向里剥夺,直到线条剩下一个像素的为止。图像细化大大地压缩了原始图像地数据量,并保持其形状的基本拓扑结构不变,从而为文字识别中的特征抽取等应用奠定了基础。细化算法应满足以下条件: 

① 将条形区域变成一条薄线; ② 薄线应位与原条形区域的中心; ③ 薄线应保持原图像的拓扑特性。 

细化分成串行细化和并行细化,串行细化即是一边检测满足细化条件的点,一边删除细化点;并行细化即是检测细化点的时候不进行点的删除只进行标记,而在检测完整幅图像后一次性去除要细化的点。 

常用的图像细化算法有hilditch算法,pavlidis算法和rosenfeld算法等。 

注:进行细化算法前要先对图像进行二值化,即图像中只包含“黑”和“白”两种颜色。

 

椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起。

 

椒盐噪声是指两种噪声,一种是盐噪声(salt noise),另一种是胡椒噪声(pepper noise)。盐=白色,椒=黑色。前者是高灰度噪声,后者属于低灰度噪声。一般两种噪声同时出现,呈现在图像上就是黑白杂点。

 

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。

 

高斯分布,也称正态分布,又称常态分布,记为Nμσ^2),其中μσ^2为分布的参数,分别为高斯分布的期望和方差。当有确定值时,p(x)也就确定了,特别当μ=0σ^2=1时,X的分布为标准正态分布

 

时域是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。

时域是真实世界,是惟一实际存在的域。因为我们的经历都是在时域中发展和验证的,已经习惯于事件按时间的先后顺序地发生。而评估数字产品的性能时,通常在时域中进行分析,因为产品的性能最终就是在时域中测量的。

 

频域(频率域)——自变量是频率,即横轴是频率,纵轴是该频率信号的幅度,也就是通常说的频谱图。频谱图描述了信号的频率结构及频率与该频率信号幅度的关系。

对信号进行时域分析时,有时一些信号的时域参数相同,但并不能说明信号就完全相同。因为信号不仅随时间变化,还与频率、相位等信息有关,这就需要进一步分析信号的频率结构,并在频率域中对信号进行描述。动态信号从时间域变换到频率域主要通过傅立叶级数和傅立叶变换实现。周期信号靠傅立叶级数,非周期信号靠傅立叶变换。

 

时域波形的下降时间也有一个相应的值。根据逻辑系列可知,下降时间通常要比上升时间短一些,这是由典型CMOS输出驱动器的设计造成的。在典型的输出驱动器中,p管和n管在电源轨道VccVss间是串联的,输出连在这个两个管子的中间。在任一时间,只有一个晶体管导通,至于是哪一个管子导通取决于输出的高或低状态。

 

正弦波是频域中唯一存在的波形这是频域中最重要的规则,即正弦波是对频域的描述,因为时域中的任何波形都可用正弦波合成。这是正弦波的一个非常重要的性质。然而,它并不是正弦波的独有特性,还有许多其他的波形也有这样的性质。正弦波有四个性质使它可以有效地描述其他任一波形:

1)时域中的任何波形都可以由正弦波的组合完全且惟一地描述。

2)任何两个频率不同的正弦波都是正交的。如果将两个正弦波相乘并在整个时间轴上求积分,则积分值为零。这说明可以将不同的频率分量相互分离开。

3)正弦波有精确的数学定义。

4)正弦波及其微分值处处存在,没有上下边界。

 

 

 

(Linux)内核是(Linux)操作系统的核心,一般包含五大部分:进程管理、存储管理、文件管理、设备管理和网络管理,是一组程序模块,具有访问硬件设备和所有主存空间的权限,是仅有的能够执行特权指令的程序。主要功能是:资源抽象、资源分配、资源共享。(资源是指CPU、内存等。)在内核基础上挂载第三方软件便构成操作系统,Ubuntu、RedHat、Fedora、Debian等都是基于Linux内核(版本号可能不同)的不同操作系统。

 

内核函数对用户是完全透明的,用户想要调用内核函数只有两种途径:一是 应用程序→系统调用(程序接口)→操作系统;二是 操作命令→系统程序(作业接口)→操作系统。

 

内核是不是指的就是用shell控制的东西?

shell命令可能是普通的应用程序,也可能是库函数或系统调用(你可以理解为内核函数)。

如果你想查看某命令是普通shell命令,还是库函数或系统调用,可以在终端输入“man 命令”查看。如man open,左上角应该是OPEN(2)。1 表示普通shell命令,2 表示系统调用,3 表示库函数。

 

注:库函数事实上是内核函数的封装,介于应用程序与内核函数之间。应用程序是不能直接访问内核函数的,必须通过库函数。这是一种保护内核函数的一种机制。

 

事实上很多时候我们都要用到内核函数,只是我们并不知道而已,如打开文件要调用open()、关闭文件要调用close()等等

 

Linux移植到Zedboard的文件意义

boot_image目录:

-- system.bit配置FPGAbit文件

-- u-boot.elf引导linux需要的Second-Stage boot loader

-- zynq_fsbl.elf配置ARM PS系统的First-Stage boot loader(FSBL)

doc目录:

-- README.txt – 说明文件

hw目录:

-- EDK 14.1版本的XPS工程,用来生成硬件文件和bit文件

linux目录:

-- devicetree_ramdisk.dts – 设备树源代码

-- .config – Linux内核配置文件,用来生成zImage

sd_image目录:

--BOOT.BIN 使用boot_images中的三个文件生成的Zynq配置文件

--devicetree_ramdisk.dtb 编译后的设备树文件

--ramdisk8M.image.gz 编译后的文件系统

-- README – 介绍如何运行OOB设计的说明文档

-- zImage 编译后的内核

sw目录:

--硬件配置

--FSBL源代码

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章