上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 75 下一页
摘要: 今天在看局部熵方面的内容,看论文中介绍的内容感觉局部熵挺容易了,于是就有了实现的想法,结果效果非常糟糕。 得到的几乎是一张空白的图片,就像下面一样: 究其原因是各种论文上都写了这样一个公式: 这里f(i,j)就是在m*n这个局部的像素,这个没问题,不过这里的p是什么东西,按这里的定义p是当前像素灰度 阅读全文
posted @ 2013-04-11 15:12 Dsp Tian 阅读(15471) 评论(4) 推荐(1) 编辑
摘要: 算法步骤:1.任意找一顶点加入树中。2.寻找所有与树相邻的元素,并取其边权重最小的并且不在树中的元素入树。3.继续第二步,直到所有元素都入树。效果和Kruskal算法是类似的。matlab代码:main.mclear all;close all;clc;G=[0 4 0 0 0 0 0 8 0; 4 0 8 0 0 0 0 11 0; 0 8 0 7 0 4 0 0 2; 0 0 7 0 9 14 0 0 0; 0 0 0 9 0 10 0 0 0; 0 0 4 14 10 0 2 0 0; 0 0 0 0 0 2 0 1 6; 8 11 0 0 0 0 1 0 7... 阅读全文
posted @ 2013-04-10 13:38 Dsp Tian 阅读(8225) 评论(0) 推荐(0) 编辑
摘要: 小技巧在函数中用persistent定义变量。例子:function re=test() persistent a; if isempty(a) a=1; end a=a+1; re=a;end 阅读全文
posted @ 2013-04-09 15:46 Dsp Tian 阅读(2056) 评论(0) 推荐(1) 编辑
摘要: 老物了,网上的例子多的数不过来。不过我还是有必要练习一下的。之所以看这个算法是因为最近在看颜色聚合向量时,有的论文用到了最小生成树,因此我就拿来熟悉一下。Kruskal算法类似于连通分支算法,感觉和过去实现过的连通区域标记算法非常像。步骤:1.对于一个图,将图的每条边提取出来从小到大进行排序。2.将已排序的边依次加入到新图中,如果新图中出现了环,那么就舍弃这条边。3.不断重复第二步。下面两个图就是kruskal算法前后的样子。代码如下:main.mclear all;close all;clc;%算法导论P349的列子G=[0 4 0 0 0 0 0 8 0; 4 0 8 0 0 0 0 .. 阅读全文
posted @ 2013-04-09 15:07 Dsp Tian 阅读(13106) 评论(3) 推荐(1) 编辑
摘要: 立体感知对应点匹配基本分为两种:一是低层的基于像素级的匹配,二是高层的基于特征级的匹配。这里介绍的是底层的像素级匹配。用摄像头平行移动获取两张图片,其实就是双目感知到的两张图片。原理是在一定的窗口中,两张图片具有相同的水平视差,而对比这两个局部窗口中的像素相似度就能计算出当前像素的深度。先看下效果吧: left.img right.img depth.img具体判断像素相似度的判据有以下几种:所有公式(非官方公式哈,自己凭理解写的)中ds是原图中的像素块(左图),dd是待检测图的像素块(右图),i是... 阅读全文
posted @ 2013-04-07 22:26 Dsp Tian 阅读(8155) 评论(1) 推荐(1) 编辑
摘要: 好老的技术了,91年的,不过我发现网上介绍的还真不多。steerable filters方向可调滤波器,通过在不同方向上产生模板,然后用不同方向上的模板去卷积图像,就能得到图像的边缘。产生的模板分不同阶,不同阶有不同的系数,系数分幅度系数和方向系数,最后的模板是不同方向上的系数相乘再相加。下面是一些求系数的公式,都是在mit的一个教程上找到的,并且我也用了其中的三阶系数来编程。二阶系数:三阶系数:四阶系数:五阶系数:最终需要的模板G=Ha*ka+Hb*kb+Hc*kc等等就看用几阶了。matlab代码:clear all;close all;clc;sigma=0.5;h=floor(2*si 阅读全文
posted @ 2013-03-25 22:10 Dsp Tian 阅读(3912) 评论(1) 推荐(1) 编辑
摘要: 纹理描述的共生矩阵方法是基于在纹理中某一灰度级结构重复出现的情况;这个结构在精细纹理中随着距离而快速的变化,而在粗糙纹理中则缓慢的变化。假设待分析在精细纹理图像的一部分是一个M*N的矩形窗口。某一灰度级结构的出现情况可以由相对的频率的矩阵来描述,他描绘了具有灰度级a,b的两个像素,在方向Φ上间隔距离为d,以多大的频率出现在窗口中。共生矩阵求取方法:这里有两种定义,书上的是第一种,也就是对称矩阵的定义,如下:我程序用的是非对称的矩阵的定义,如下:哦,我想这一大堆公式是不那么容易看明白的,不过下面这个图就让人一目了然了。下图中的Φ=0,d=1.共生矩阵产生完之后就需要使用其派生出的准则了。主要有如 阅读全文
posted @ 2013-03-23 20:28 Dsp Tian 阅读(6218) 评论(3) 推荐(2) 编辑
摘要: 均值模糊原理很容易了,就不解释了。我测了一下,使用汇编的代码处理时间为1-2ms左右。cpp代码处理时间为3-4ms左右。这里只给出关键代码,其余代码见这里。void asmMeanFilter(BitmapData *data){ UINT Height=data->Height; UINT s_Height=Height-1; UINT Width=data->Width; UINT s_Width=Width-1; Pix* p=(Pix*)data->Scan0; UINT h,w,i,j; __asm { push ... 阅读全文
posted @ 2013-03-20 16:57 Dsp Tian 阅读(852) 评论(0) 推荐(1) 编辑
摘要: 一种图像特征的提取算法。算法步骤:1.用3*3的模板对图像每个像素进行处理,比较当前像素和周围像素的大小,将大于当前像素的置1,小于的置0。2.对这周围八个像素进行编码,这八个0和1正好是可以组成一个byte数,然后按一定的规则组成这个无符号数。3.把这个数赋值给当前像素。4.通常对处理后的图像进行区域划分,比如分成4*4 、10*10或16*16的区域,对每个区域求得直方图,得到16、100或256个直方图。(划分都不是固定的)5.这些直方图就是特征了,可以根据需要任意使用了。下面是简单的实现:clear all;close all;clc;img=imread('lena.jpg& 阅读全文
posted @ 2013-03-19 20:07 Dsp Tian 阅读(27716) 评论(7) 推荐(1) 编辑
摘要: 本来自己写了一个,不过性能竟然和memcpy一样,一点提升都没有,所以有就去网上找了一个性能好的。下面的程序是对100MB数据进行内存拷贝.我测试了一下。直接调用memcpy时间为100ms左右,而asm中的程序能把时间能缩短到80ms左右。性能提高的还是很明显的。#include <iostream>#include <ctime>#define N 100*1024*256using namespace std;int main(int argc, char* argv[]){ float *a; float *b; a=(float*)malloc(N*sizeo 阅读全文
posted @ 2013-03-17 21:42 Dsp Tian 阅读(1052) 评论(0) 推荐(0) 编辑
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 75 下一页