MATLAB 二维直方图
摘要:普通的直方图就是统计图像中像素灰度出现的次数。 二维直方图的其中一维就是普通的直方图,即统计图像中像素灰度出现的次数。 另一维的概念就比较模糊了,我看很多论文中都是用的当前像素邻域均值灰度出现的次数。按照这个意思,其实用当前像素邻域中值灰度出现的次数也是可以的。或者用什么厉害的算法处理一下,在统计出
阅读全文
posted @
2020-09-10 16:30
一杯清酒邀明月
阅读(2688)
推荐(0) 编辑
MATLAB 自适应中值滤波RAMF
摘要:中值滤波是很经典的算法了。今天看论文又知道还有一种叫自适应中值滤波的算法RAMF。 RAMF主要通过以下两步来处理图像。 1.首先确定最大的滤波半径,然后用一个合适的半径r对图像进行滤波。计算当前滤波半径像素灰度的Imin,Imax,Imed,然后判断Imed是否在[Imin,Imax]中间,如果在
阅读全文
posted @
2020-09-10 16:29
一杯清酒邀明月
阅读(1623)
推荐(1) 编辑
MATLAB 二值图像内外边界跟踪
摘要:目标内边界的像素全都在目标里面,目标外边界的像素全都不在目标上,是包围着目标的。 二值图像内外边界的计算都是有两种方法的,所以一共是4种算法,不过实际用到跟踪的只有一个而已。 首先是内边界跟踪: 第一种方法不是跟踪方法。步骤是先对原图像腐蚀,然后用原图像减去腐蚀后的图像就得到边界了。 第二种方法是跟
阅读全文
posted @
2020-09-10 16:28
一杯清酒邀明月
阅读(971)
推荐(0) 编辑
MATLAB 各向异性扩散)
摘要:主要是用来平滑图像的,克服了高斯模糊的缺陷,各向异性扩散在平滑图像时是保留图像边缘的(和双边滤波很像)。 通常我们有将图像看作矩阵的,看作图的,看作随机过程的,记得过去还有看作力场的。 这次新鲜,将图像看作热量场了。每个像素看作热流,根据当前像素和周围像素的关系,来确定是否要向周围扩散。比如某个邻域
阅读全文
posted @
2020-09-10 16:25
一杯清酒邀明月
阅读(302)
推荐(0) 编辑
MATLAB 构建Hessian矩阵
摘要:很多算法都用到了这个矩阵,比如Hessian affine region detector、SURF,虽然这些算法我还没有完全搞透,不过那都是后话,先把这个矩阵搞出来再说,学习是不断迭代的过程。 整个矩阵的形成主要由四部分公式决定: g(x,y)就是高斯函数了,没啥可说的: 对高斯函数的x和y分别求
阅读全文
posted @
2020-09-10 16:24
一杯清酒邀明月
阅读(1622)
推荐(0) 编辑
MATLAB 图像局部熵
摘要:今天在看局部熵方面的内容,看论文中介绍的内容感觉局部熵挺容易了,于是就有了实现的想法,结果效果非常糟糕。 得到的几乎是一张空白的图片,就像下面一样: 究其原因是各种论文上都写了这样一个公式: 这里f(i,j)就是在m*n这个局部的像素,这个没问题,不过这里的p是什么东西,按这里的定义p是当前像素灰度
阅读全文
posted @
2020-09-10 16:23
一杯清酒邀明月
阅读(1339)
推荐(1) 编辑
MATLAB Kruskal最小生成树
摘要:老物了,网上的例子多的数不过来。不过我还是有必要练习一下的。 之所以看这个算法是因为最近在看颜色聚合向量时,有的论文用到了最小生成树,因此我就拿来熟悉一下。 Kruskal算法类似于连通分支算法,感觉和过去实现过的连通区域标记算法非常像。 步骤: 1.对于一个图,将图的每条边提取出来从小到大进行排序
阅读全文
posted @
2020-09-10 16:21
一杯清酒邀明月
阅读(779)
推荐(0) 编辑
MATLAB LBP,局部二值模型
摘要:一种图像特征的提取算法。 算法步骤: 1.用3*3的模板对图像每个像素进行处理,比较当前像素和周围像素的大小,将大于当前像素的置1,小于的置0。 2.对这周围八个像素进行编码,这八个0和1正好是可以组成一个byte数,然后按一定的规则组成这个无符号数。 3.把这个数赋值给当前像素。 4.通常对处理后
阅读全文
posted @
2020-09-10 16:20
一杯清酒邀明月
阅读(514)
推荐(0) 编辑
MATLAB KNN,K最邻近分类法
摘要:K最邻近密度估计技术是一种分类方法,不是聚类方法。 不是最优方法,实践中比较流行。 通俗但不一定易懂的规则是: 1.计算待分类数据和不同类中每一个数据的距离(欧氏或马氏)。 2.选出最小的前K数据个距离,这里用到选择排序法。 3.对比这前K个距离,找出K个数据中包含最多的是那个类的数据,即为待分类数
阅读全文
posted @
2020-09-10 16:19
一杯清酒邀明月
阅读(661)
推荐(0) 编辑
MATLAB c/c++调用matlab<dll>
摘要:这里的环境是windows7+vs2010+matlabR2010b 上一篇是通过engine来调用matlab中的语句,本篇是通过调用m文件编译成的h/lib/dll文件而实现的。 首先写一个函数mysvd.m: 1 function [s v d]=mysvd(a) 2 [s v d]=svd(
阅读全文
posted @
2020-09-10 16:18
一杯清酒邀明月
阅读(742)
推荐(0) 编辑
MATLAB 矩阵生成有向网络图
摘要:早知道有向图和无向图差别没有想象中的大我就写到一起了。 函数中使用的arrow画箭头函数是在这个网站下的。 1 %函数名netplot 2 %使用方法输入请help netplot 3 %无返回值 4 %函数只能处理有向图 5 %作者:tiandsp 6 %最后修改:2012.12.26 7 fun
阅读全文
posted @
2020-09-10 16:16
一杯清酒邀明月
阅读(1453)
推荐(0) 编辑
MATLAB 矩阵生成无向网络图
摘要:寝室有一个是做网络的,需要把矩阵变为网络图使其形象一点,所以我在这里就写了这样一个函数。 功能是将邻接矩阵或关联矩阵变为网络图,不过我这里只能转换为无向图,有向图的箭头我还需要在研究一下,似乎有annotation函数可以调用。 1 %函数名netplot 2 %使用方法输入请help netplo
阅读全文
posted @
2020-09-10 16:15
一杯清酒邀明月
阅读(861)
推荐(0) 编辑
MATLAB RGB2YCbCr、YCbCr2RGB
摘要:这个YCbCr是从YUV派生出来的,比较适合处理数字图像,JPEG压缩就是在这个彩色空间中处理的。变换公式。 1 clear all; 2 close all; 3 clc; 4 5 img=imread('lena_color.jpg'); 6 %img=mat2gray(img); %任意区间映
阅读全文
posted @
2020-09-10 15:59
一杯清酒邀明月
阅读(1097)
推荐(0) 编辑
MATLAB RGB2YUV、YUV2RGB
摘要:这里的变换公式是模拟领域的公式,这里虽然是数字图像,不过也可以这样写,YCbCr采样另外的公式。 1 clear all; 2 close all; 3 clc; 4 5 img=imread('lena_color.jpg'); 6 img=mat2gray(img); %任意区间映射到[0,1]
阅读全文
posted @
2020-09-10 15:57
一杯清酒邀明月
阅读(575)
推荐(0) 编辑
MATLAB RGB2HSV、HSV2RGB
摘要:色相饱和度明度和三原色的相互转换 1 clear all; 2 close all; 3 clc; 4 5 img=imread('lena_color.jpg'); 6 img=mat2gray(img); %任意区间映射到[0,1]; 7 [m n dim]=size(img); 8 imsho
阅读全文
posted @
2020-09-10 15:56
一杯清酒邀明月
阅读(645)
推荐(0) 编辑
MATLAB 直方图匹配
摘要:直方图匹配或叫做直方图规定化都可以,是把原图像的直方图按照给定的直方图加以映射,使新图像的直方图的分布类似于给定的函数。 总共有以下几步: 1.求给定的函数的累积直方图s。 2.求原图像的累积直方图G。 3.求s中每一个值在G中距离最小的位置index。 4.求原图像每个像素通过index映射到的新
阅读全文
posted @
2020-09-10 15:55
一杯清酒邀明月
阅读(1420)
推荐(0) 编辑
MATLAB 双边滤波
摘要:双边滤波模板主要有两个模板生成,第一个是高斯模板,第二个是以灰度级的差值作为函数系数生成的模板。然后这两个模板点乘就得到了最终的双边滤波模板。 第一个模板是全局模板,所以只需要生成一次。第二个模板需要对每个像素都计算一次,所以需要放到循环的里面来生成,这很像表面模糊啊。哦,表面模糊就是用了一个截尾滤
阅读全文
posted @
2020-09-10 15:54
一杯清酒邀明月
阅读(1898)
推荐(0) 编辑
MATLAB 区域填充算法,队列版
摘要:其实写过一步法二值图像连通区域标记之后我就感觉这个标记和填充基本上是一回事,所以我这里就用了一步法的那个队列算法。也没什么好说的,算法几乎一样,就是细节的区别。还有这里使用了ginput函数。至于堆栈版的实现,看情况吧。 1 clear all; 2 close all; 3 clc; 4 5 im
阅读全文
posted @
2020-09-10 15:52
一杯清酒邀明月
阅读(696)
推荐(0) 编辑
MATLAB 二值图像连通区域标记法,两步法
摘要:我几乎完全就是照着WIKI百科上的算法实现的,不过是用Matlab而已。使用了两步法进行标记,一步法我还没怎么看。两步法中第二步是比较麻烦的,其中用到了不相交集合的一些理论,尤其是不相交集合森林,我这里的find_set函数就是参考《算法导论》311页的算法写的。如果用c++写,也许需要自己构造数据
阅读全文
posted @
2020-09-10 15:50
一杯清酒邀明月
阅读(1311)
推荐(0) 编辑
MATLAB 二值图像连通区域标记法,一步法
摘要:这个只需要遍历一次图像就能够完全标记了。我主要参考了WIKI和这位兄弟的博客,这两个把原理基本上该介绍的都介绍过了,我也不多说什么了。一步法代码相比两步法真是清晰又好看,似乎真的比两步法要好很多。 代码如下: 1 clear all; 2 close all; 3 clc; 4 5 img=imre
阅读全文
posted @
2020-09-10 15:49
一杯清酒邀明月
阅读(969)
推荐(0) 编辑