三九宝宝网宝宝教育教学论文

surf算法C语言编写要做嵌入式开发不要C和基于OPENCV的

02月25日 编辑 39baobao.com

[用C语言编写一个对称加密算法对字符串加密]其实关键点就两个, 1、 如何进行对称位交换 (看我代码中的 SYMM_SWAP 宏) 2、 加密时先 对称交换,然后与key异或, 解密时则先与key异或,然后对称交换。 对此代码有什么不懂,可以bai...+阅读

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 surf借鉴了sift中简化近似的思想,将DOH中的高斯二阶微分模板进行了近似简化,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且,这种运算与滤波模板的尺寸有关。实验证明surf算法较sift算法在运算速度上要快3倍左右。 1 积分图像 surf算法中要用到积分图像的概念。借助积分图像,图像与高斯二阶微分模板的滤波转化为对积分图像的加减运算。积分图像(Integral Image)的概念是由viola和Jones提出来的,而将类似积分图像用于盒子滤波是由Simard等人提出。 积分图像中任意一点(i,j)的值为ii(i,j)为原图像左上角到任意点(i,j)相应的对角线区域灰度值的总和即: 公式中,I(x`,y`)表示原图像中点(i`,j`)的灰度值,ii(x,y)可以由下面两公式迭代计算得到: 公式中,S(x,y)表示一列的积分,且S(i,-1)=0,ii(-1,j)=0.求积分图像,只需对原图像的所有像素素进行一遍扫描。下面的代码为c++语言的实现 pOutImage[0][0] = pInImage[0][0]; for(int x = 1, x

(1)任意矩形区域内像素积分。由图像的积分图可方便快速地计算图像中任意矩形内所有像素灰度积分。如下图2.3所示,点1的积分图像ii1的值为(其中Sum为求和) : ii1=Sum(A) 同理,点2、点3、点4的积分图像分别为: ii2=Sum(A)+Sum(B); ii3=Sum(A)+Sum(C); ii4=Sum(A)+Sum(B)+Sum(C)+Sum(D); 矩形区域D内的所有像素灰度积分可由矩形端点的积分图像值得到: Sum(D)=ii1+ii4-(ii2+ii3)

(1)

(2) 特征值计算 矩形特征的特征值是两个不同的矩形区域像素和之差,由

(1)式可以计算任意矩形特征的特征值,下面以图2.1中特征原型A为例说明特征值的计算。 如图2.4 所示,该特征原型的特征值定义为: Sum(A)-Sum(B) 根据

(1)式则有:Sum(A)=ii4+ii1-(ii2+ii3); Sum(B)=ii6+ii3-(ii4+ii5); 所以此类特征原型的特征值为: (ii4-ii3)-(ii2-ii1)+(ii4-ii3)-(ii6-ii5) 另示:运用积分图可以快速计算给定的矩形之所有象素值之和Sum(r)。假设r=(x,y,w,h),那么此矩形内部所有元素之和等价于下面积分图中下面这个式子: Sum(r) = ii(x+w,y+h)+ii(x-1,y-1)-ii(x+w,y-1)-ii(x-1,y+h) 由此可见,矩形特征特征值计算只与此特征端点的积分图有关,而与图像坐标值无关。对于同一类型的矩形特征,不管特征的尺度和位置如何,特征值的计算所耗费的时间都是常量,而且都只是简单的加减运算。其它类型的特征值计算方法类似。

计算图像相似度的算法有哪些

SIM = Structural SIMilarity(结构相似性),这是一种用来评测图像质量的一种方法。由于人类视觉很容易从图像中抽取出结构信息,因此计算两幅图像结构信息的相似性就可以用来作为一种检测图像质量的好坏. 首先结构信息不应该受到照明的影响,因此在计算结构信息时需要去掉亮度信息,即需要减掉图像的均值;其次结构信息不应该受到图像对比度的影响,因此计算结构信息时需要归一化图像的方差;最后我们就可以对图像求取结构信息了,通常我们可以简单地计算一下这两幅处理后的图像的相关系数. 然而图像质量的好坏也受到亮度信息和对比度信息的制约,因此在计算图像质量好坏时,在考虑结构信息的同时也需要考虑这两者的影响.通常使用的计算方法如下,其中C1,C2,C3用来增加计算结果的稳定性: 2u(x)u(y) + C1 L(X,Y) = ------------------------ ,u(x), u(y)为图像的均值 u(x)^2 + u(y)^2 + C1 2d(x)d(y) + C2 C(X,Y) = ------------------------,d(x),d(y)为图像的方差 d(x)^2 + d(y)^2 + C2 d(x,y) + C3 S(X,Y) = ----------------------,d(x,y)为图像x,y的协方差 d(x)d(y) + C3 而图像质量Q = [L(X,Y)^a] x [C(X,Y)^b] x [S(X,Y)^c],其中a,b,c分别用来控制三个要素的重要性,为了计算方便可以均选择为1,C1,C2,C3为比较小的数值,通常C1=(K1 x L)^2, C2=(K2 xL)^2, C3 = C2/2, K1

以下为关联文档:

用c语言编写一个排序程序要求使用基数排序算法最好能详细解释#include#define MAX_NUM_OF_KEY 8 //关键字项数的最大值#define RADIX 10 //关键字基数,此时是十进制整数的基数#define MAX_SPACE 10000 typedef int KeysType; typedef in...

C语言数据结构与算法分析C语言描述Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi...

请问如何自学嵌入式如何学习嵌入式c语言嵌入式比单片机高级的多,因为它的上面可以安装操作系统,来实现更加复杂的操作。 嵌入式的概念也很大,包含的许多东西,尤其到了软件这块,分支很多,比如工业控制、图形、网络、手机...

C语言嵌入式C刚开始学的时候,学习用汇编程序写你会对硬件的理解更深些, 当你对硬件比较熟悉的时候,编写这些程序就简单了。你再用C语言写这些程序的时候就会发现用C写的程序是多么的简单,简...

关于用C语言编写DES算法中的读入文件数据问题用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。 例程: #include #include void main() { char a[100],b[100],c[...

用c语言和算法编程#include "iostream.h" #include "stdlib.h" #define MAXSIZE 12500 typedef struct { int e; int i,j; }Triple; typedef struct{ Triple data[MAXSIZE+1]; int mu,nu,tu; }TSM...

如何自学Linux下C语言嵌入式编程开发板用友善之臂的吧 mini2440 连3.5寸屏500块钱的样子 有好几张DVD学习光盘 这款口碑比较高 嵌入式Linux操作系统学习规划 ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应...

怎么样编写两个矩阵相乘的c语言要简洁的啊亲!不要粘贴和复制#include<stdio.h> #define N 4 #define M 4 void main() { int a[N][M],b[N][M],c[N][M]={0}; int i,j,k; for(i=0;i<N;i++) { for(j=0;j<M;j++) scanf("%d",&a[i][j]); } fo...

请问如何自学嵌入式?如何学习嵌入式c语言嵌入式比单片机高级的多,因为它的上面可以安装操作系统,来实现更加复杂的操作。 嵌入式的概念也很大,包含的许多东西,尤其到了软件这块,分支很多,比如工业控制、图形、网络、手机...

推荐阅读
图文推荐