摘要:
方法是先用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; 阅读全文
摘要:
我可没直接调用系统函数,要是那样就太水了。其实我的matlab代码很容易就能翻译成c/c++的。 canny边缘检测一共四个部分: 1.对原图像高斯平滑 2.对高斯平滑后的图像进行sobel边缘检测。这里需要求横的和竖的还有联合的,所以一共三个需要sobel边缘检测图像。 3.对联合的sobel检测 阅读全文
摘要:
这个过去也实现过,不过现在回头看,当时写的还真是糟糕,所以现在决定用matlab重写了。而且当时的方法现在来看还真是不怎么样呢。 这里用的方法是《特征提取与图像处理》3.3.4里的。 下面是代码: function main img=imread('lena.jpg'); imshow(img); 阅读全文
摘要:
把图像中每一个像素当成有质量的恒星,像素的灰度值就相当于恒星的质量,运用万有引力定律求得每个像素受到其他像素的“力”,获得力场图像。 公式就是中学的万有引力公式,不过这里是向量场,所以每一个像素受到的力不是简单的叠加,是矢量求和。 好像有用这个力场变换识别耳朵的。 这里也是求模板大小的局部力场,全局 阅读全文
摘要:
这里只是简单的实现一下,这个和直方图反向投影很像。 书上说了,“优势是理论上的,很难发展处一种满意的模板匹配技术”。 代码: clear all; close all; clc; img=imread('lena.jpg'); imshow(img); img=double(img); mask=d 阅读全文
摘要:
我不太清楚这个凸包在图像处理中到底会怎样的运用,因为这个好像更多的是计算几何或是图形学里面的东西。不过作为一个算法,我感觉还是有必要研究一下的。我主要的参考资料是《算法导论》的33.3和这个博客。 代码在这里,我只写了主要过程,过分细节的判断就省略了。这里是逆时针寻找: main.m clear a 阅读全文
摘要:
我主要参考了这里,不过他推导的系数我感觉有问题,用他的公式直接套用放大的图像会有网格,也许是我理解的有偏差。 所以我自己重新推导了这四个系数 用这个就没问题了。他的那些代码还是很有参考价值的。 程序代码: main.m clear all; close all; clc; w=2; %放大或缩小的宽 阅读全文
摘要:
其实写过一步法二值图像连通区域标记之后我就感觉这个标记和填充基本上是一回事,所以我这里就用了一步法的那个队列算法。也没什么好说的,算法几乎一样,就是细节的区别。还有这里使用了ginput函数。至于堆栈版的实现,看情况吧。 clear all; close all; clc; img=imread(' 阅读全文
摘要:
还是一个函数的使用ginput()clear all;close all;clc;img=ones(200,200);imshow(img);[x y]=ginput()这里鼠标左键点击一次[x y]添加一个值,点四次就有四个值。敲击回车结束。获得坐标的(0,0)就是图像的(0,0)。 阅读全文
摘要:
这个只需要遍历一次图像就能够完全标记了。我主要参考了WIKI和这位兄弟的博客,这两个把原理基本上该介绍的都介绍过了,我也不多说什么了。一步法代码相比两步法真是清晰又好看,似乎真的比两步法要好很多。 代码如下: clear all; close all; clc; img=imread('lianto 阅读全文