随笔分类 -  Matlab练习程序

上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要:直方图匹配或叫做直方图规定化都可以,是把原图像的直方图按照给定的直方图加以映射,使新图像的直方图的分布类似于给定的函数。 总共有以下几步: 1.求给定的函数的累积直方图s。 2.求原图像的累积直方图G。 3.求s中每一个值在G中距离最小的位置index。 4.求原图像每个像素通过index映射到的新 阅读全文
posted @ 2012-12-19 19:49 Dsp Tian 阅读(26342) 评论(6) 推荐(4) 编辑
摘要:双边滤波模板主要有两个模板生成,第一个是高斯模板,第二个是以灰度级的差值作为函数系数生成的模板。然后这两个模板点乘就得到了最终的双边滤波模板。 第一个模板是全局模板,所以只需要生成一次。第二个模板需要对每个像素都计算一次,所以需要放到循环的里面来生成,这很像表面模糊啊。哦,表面模糊就是用了一个截尾滤 阅读全文
posted @ 2012-12-19 13:21 Dsp Tian 阅读(37681) 评论(10) 推荐(2) 编辑
摘要:程序运行时如果太慢了,那么就需要有一些标示来说明程序到底运行到哪里了,为了给一个直观的程序运行进度,就需要用到waitbar了。我也是看人家程序有这个东西,感觉挺有用的,就记下来了。h=waitbar(0,'wait...');for i=1:1000 waitbar(i/1000);endclose(h) 阅读全文
posted @ 2012-12-18 21:47 Dsp Tian 阅读(1965) 评论(0) 推荐(0) 编辑
摘要:过去也写过透视变换,当时算法真是弱爆了,我竟然会通过两次变换。不过那引用的三篇文章都是非常好的文章,直到今天我才看明白。所谓的倾斜校正,一定要有标定点,将一个倾斜的矩形变为不倾斜的。因此可以从原四边形四个点和新矩形四个点得到一个变换矩阵,根据这个矩阵再作用到全局图像就可以了。详细原理在这里,MIT的 阅读全文
posted @ 2012-12-16 21:38 Dsp Tian 阅读(45297) 评论(51) 推荐(9) 编辑
摘要:SUSAN算子既可以检测角点也可以检测边缘,不过角点似乎比不过harris,边缘似乎比不过Canny。不过思想还是有点意思的。 主要思想就是:首先做一个和原图像等大的目标图像。然后用一个圆形的模板,用模板去遍历原图像每个像素,把模板内的每个像素都和模板中心像素比较,如果灰度小于一个阈值,那么就对目标 阅读全文
posted @ 2012-12-15 16:51 Dsp Tian 阅读(9671) 评论(1) 推荐(0) 编辑
摘要:一种评价压缩后图像质量的方法,和PSNR类似。具体论文看这里。 代码:function main img=imread('lena.jpg'); [m n]=size(img); imgn=imresize(img,[floor(m/8) floor(n/8)]); imgn=imresize(imgn,[m n]); img=double(img); imgn=double(imgn); tmp=[]; for i=9:8:m for j=9:8:n tmp=[tmp SSIM(img(i-8:i,j-8:j... 阅读全文
posted @ 2012-12-14 16:39 Dsp Tian 阅读(12769) 评论(7) 推荐(0) 编辑
摘要:方法是先用LoG算子进行滤波,在对图像的过零点进行检测。 clear all; close all; clc; %产生LoG算子(Laplacian of Gaussian) m=11; n=11; sigma=1.4; w=zeros(m,n); h_m=(m-1)/2; h_n=(n-1)/2; 阅读全文
posted @ 2012-12-14 14:50 Dsp Tian 阅读(7716) 评论(1) 推荐(0) 编辑
摘要:我可没直接调用系统函数,要是那样就太水了。其实我的matlab代码很容易就能翻译成c/c++的。 canny边缘检测一共四个部分: 1.对原图像高斯平滑 2.对高斯平滑后的图像进行sobel边缘检测。这里需要求横的和竖的还有联合的,所以一共三个需要sobel边缘检测图像。 3.对联合的sobel检测 阅读全文
posted @ 2012-12-13 22:57 Dsp Tian 阅读(78392) 评论(50) 推荐(24) 编辑
摘要:这个过去也实现过,不过现在回头看,当时写的还真是糟糕,所以现在决定用matlab重写了。而且当时的方法现在来看还真是不怎么样呢。 这里用的方法是《特征提取与图像处理》3.3.4里的。 下面是代码: function main img=imread('lena.jpg'); imshow(img); 阅读全文
posted @ 2012-12-12 19:25 Dsp Tian 阅读(9645) 评论(5) 推荐(2) 编辑
摘要:把图像中每一个像素当成有质量的恒星,像素的灰度值就相当于恒星的质量,运用万有引力定律求得每个像素受到其他像素的“力”,获得力场图像。 公式就是中学的万有引力公式,不过这里是向量场,所以每一个像素受到的力不是简单的叠加,是矢量求和。 好像有用这个力场变换识别耳朵的。 这里也是求模板大小的局部力场,全局 阅读全文
posted @ 2012-12-12 15:18 Dsp Tian 阅读(2272) 评论(0) 推荐(1) 编辑
摘要:这里只是简单的实现一下,这个和直方图反向投影很像。 书上说了,“优势是理论上的,很难发展处一种满意的模板匹配技术”。 代码: clear all; close all; clc; img=imread('lena.jpg'); imshow(img); img=double(img); mask=d 阅读全文
posted @ 2012-12-11 21:32 Dsp Tian 阅读(18971) 评论(7) 推荐(0) 编辑
摘要:我不太清楚这个凸包在图像处理中到底会怎样的运用,因为这个好像更多的是计算几何或是图形学里面的东西。不过作为一个算法,我感觉还是有必要研究一下的。我主要的参考资料是《算法导论》的33.3和这个博客。 代码在这里,我只写了主要过程,过分细节的判断就省略了。这里是逆时针寻找: main.m clear a 阅读全文
posted @ 2012-12-10 22:39 Dsp Tian 阅读(11131) 评论(0) 推荐(0) 编辑
摘要:我主要参考了这里,不过他推导的系数我感觉有问题,用他的公式直接套用放大的图像会有网格,也许是我理解的有偏差。 所以我自己重新推导了这四个系数 用这个就没问题了。他的那些代码还是很有参考价值的。 程序代码: main.m clear all; close all; clc; w=2; %放大或缩小的宽 阅读全文
posted @ 2012-12-07 20:18 Dsp Tian 阅读(8363) 评论(3) 推荐(0) 编辑
摘要:其实写过一步法二值图像连通区域标记之后我就感觉这个标记和填充基本上是一回事,所以我这里就用了一步法的那个队列算法。也没什么好说的,算法几乎一样,就是细节的区别。还有这里使用了ginput函数。至于堆栈版的实现,看情况吧。 clear all; close all; clc; img=imread(' 阅读全文
posted @ 2012-12-06 21:28 Dsp Tian 阅读(17698) 评论(2) 推荐(0) 编辑
摘要:还是一个函数的使用ginput()clear all;close all;clc;img=ones(200,200);imshow(img);[x y]=ginput()这里鼠标左键点击一次[x y]添加一个值,点四次就有四个值。敲击回车结束。获得坐标的(0,0)就是图像的(0,0)。 阅读全文
posted @ 2012-12-06 20:34 Dsp Tian 阅读(4311) 评论(0) 推荐(0) 编辑
摘要:这个只需要遍历一次图像就能够完全标记了。我主要参考了WIKI和这位兄弟的博客,这两个把原理基本上该介绍的都介绍过了,我也不多说什么了。一步法代码相比两步法真是清晰又好看,似乎真的比两步法要好很多。 代码如下: clear all; close all; clc; img=imread('lianto 阅读全文
posted @ 2012-12-06 16:24 Dsp Tian 阅读(14794) 评论(11) 推荐(0) 编辑
摘要:我几乎完全就是照着WIKI百科上的算法实现的,不过是用Matlab而已。使用了两步法进行标记,一步法我还没怎么看。两步法中第二步是比较麻烦的,其中用到了不相交集合的一些理论,尤其是不相交集合森林,我这里的find_set函数就是参考《算法导论》311页的算法写的。如果用c++写,也许需要自己构造数据 阅读全文
posted @ 2012-12-06 14:24 Dsp Tian 阅读(32231) 评论(6) 推荐(2) 编辑
摘要:这个过去用就写过,这次正好有人问这个算法,所以在这里又把C代码改为了matlab了。 霍夫变换是把原图像中的直线上的每一个点转换到参数空间对应的曲线上,由于每一个点对应一条曲线,因此在参数空间中所有曲线会相交到一个点,形成一个最值。因此原图寻找直线斜率的问题就变成了参数空间寻找最值的问题了。 代码如 阅读全文
posted @ 2012-12-04 14:36 Dsp Tian 阅读(10532) 评论(2) 推荐(0) 编辑
摘要:有好多算法早就想实现了,可是总有各种原因没有实现,这个双线性插值旋转图像就是其中之一。 之前写过最邻近插值旋转图像,传送门。结合着看效果会很好。 clear all; close all; clc; jiaodu=45; %要旋转的角度,旋转方向为顺时针 img=imread('lena.jpg') 阅读全文
posted @ 2012-12-03 21:09 Dsp Tian 阅读(24229) 评论(1) 推荐(2) 编辑
摘要:半年前写过matlab最邻近插值的图像缩放,没怎么考虑边界问题。更早之前用Opencv写过双线性插值图像放大,不过写的比较混乱。所以这里用matlab重新再清楚的写一遍。 close all; clear all; clc; m=1.8; %放大或缩小的高度 n=2.3; %放大或缩小的宽度 img 阅读全文
posted @ 2012-12-03 19:40 Dsp Tian 阅读(21212) 评论(3) 推荐(0) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 下一页