今天研究了下DoG角点检测算法实现,思路很简单,实现也很容易,不过一开始就是出不来预期的结果

后来参考了DoG (Difference of Gaussian)角点检测
的blog,参考源码,发现了自己代码中的两个问题,就发上来,做个提醒吧
1.没有对原始的输入图片double处理,这个问题以前学图像处理的时候遇到过,当时明白了,现在又忘了,就记在这里吧。

2.没有判断level,这个问题直接导致我们出来的结果 全部都是角点信息了, 参考发现,这边应该有个判断,用来过滤掉一部分候选点

下面给出参考图片,参考图片出处利用Harris检测子进行角点特征检测(含matlab源码)

将这个效果与harris检测结果比较,感觉效果不是很好,可能是我们的参数设置问题吧233333333

% -----------------【自己实现 DOG 检测焦点的算法】------------------
% @ date : 20150516
% @ author : zhyh2010
% @ refer : http://blog.csdn.net/abcjennifer/article/details/7639488
% -------------------------------【end】--------------------------function mainclcclose allclear allmyDogDetector_1;
endfunction myDogDetector_1src_old = imread('1.jpg');src = rgb2gray(src_old);src = double(src);  % missing double handle%     h1 = fspecial('gaussian', 5, 0.5);
%     h2 = fspecial('gaussian', 5, 1);
%     h3 = fspecial('gaussian', 5, 2);
%     h4 = fspecial('gaussian', 5, 3);h1 = fspecial('gaussian', 5, 0.3);h2 = fspecial('gaussian', 5, 0.4);h3 = fspecial('gaussian', 5, 0.5);h4 = fspecial('gaussian', 5, 0.6);src1 = imfilter(src, h1);src2 = imfilter(src, h2);src3 = imfilter(src, h3);src4 = imfilter(src, h4);% ----------------------------【DoG detector】----------------------src12 = src1 - src2;src23 = src3 - src2;src34 = src4 - src3;src_DoG(:,:,1) = src12;src_DoG(:,:,2) = src23;src_DoG(:,:,3) = src34;figure,imshow(src12);figure,imshow(src23);figure,imshow(src34);result = zeros(size(src_DoG, 1), size(src_DoG, 2));% -------------- 【查找DoG 焦点】-------------------level = 5;around = zeros(1,9);for i = 2:size(src_DoG, 1)-1for j = 2:size(src_DoG, 2)-1% -------------- 【查找周围26 个像素值 并放入数组中】-------------------around_id = 1;for ii = i-1:i+1for jj = j-1:j+1for layer = 1:3if (ii == i) && (jj == j) && layer == 2continue;endaround(around_id) = src_DoG(ii, jj, layer);around_id = around_id + 1;end                    endendaround_max = max(around);around_min = min(around);if (around_max < src_DoG(i, j, 2)) ...|| (around_min > src_DoG(i, j, 2))if around_max > level || around_min < -level   % missing level judgeresult(i, j) = 2;endendendend% -----------------------【绘图】-------------------------[posy, posx] = find(result == 1);figure, imshow(src_old)hold onplot(posx, posy, '.');saveas(gcf, 'res2', 'bmp')end

参考资料:
DoG (Difference of Gaussian)角点检测

关于DoG角点检测matlab实现相关推荐

  1. 测角误差估计算法matlab,Harris角点检测 及 Matlab实验

    目录 1 基础知识 1.1 图像变化的类型 1.2 提取点特征的作用 1.3 什么是好的角点检测算法? 2 Harris 角点检测 2.1 Harris角点检测基本思想 2.2 Harris角点检测: ...

  2. 图像金字塔、高斯金字塔、差分金字塔(DOG金字塔)、尺度空间、DoG (Difference of Gaussian)角点检测

    [图像金字塔] 图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像素采样的方式,生成N个不同分辨率的图像.把具有最高级别分辨率的图像放在底部,以金字塔形状排列,往上是一系列像素(尺 ...

  3. matlab角点坐标获取,MatLab角点检测(harris经典程序) | 学步园

    这是源博客的出处,鄙人转过来是为了更好的保存!供大家一起学习!已将原始的博客的文章的位置附在上面! 至于代码的完整性和可运行性需要大家去自己考量! %MatLab角点检测程序harris. ori_i ...

  4. Harris角点检测,及其Matlab和OpenCV实现

    1.Harris角点检测算法实现步骤 (1)计算图像I(x,y)I(x,y)I(x,y)在XXX和YYY两个方向的梯度Ix,Iy{{I}_{x}},{{I}_{y}}Ix​,Iy​:Ix=∂I∂x=I ...

  5. MATLAB——Harris角点检测

    为完成对棋盘标板的角点检测,特此记录. 角点:最直接的定义为在水平.垂直两个方向上变化均较大的点 最常用的角点检测算法为Harris角点检测方法,原理如下: 计算图像I(x,y)在X和Y两个方向的梯度 ...

  6. SUSAN角点检测算法,及其Matlab实现

    1.SUSAN角点检测算法步骤 (1)在图像上放置一个37个像素的圆形模板,模板在图像上滑动,依次比较模板内各个像素点的灰度与模板核的灰度,判断是否属于USAN区域.判别函数如下: 其中,r⃗0{{\ ...

  7. 【角点检测】 基于各向异性高斯方向导数滤波器实现图像角点检测附matlab代码

    1 内容介绍 为了改进噪声鲁棒性和定位准确性,利用各向异性高斯方向导数滤波器,提出多方向角点检测算法.该算法利用一组各向异性高斯方向导数滤波器对输入图像进行卷积处理得到各个方向的滤波器响应.对于每个像 ...

  8. 用matlab实现harris角点检测,基于MatlabGUI的Harris角点检测程序

    基于MatlabGUI的Harris角点检测程序 作 者: Bugzhao Mailto: bugzhao@http://www.doczj.com/doc/fd59aac50c22590102029 ...

  9. DoG (Difference of Gaussian)角点检测

    DoG (Difference of Gaussian)是灰度图像增强和角点检测的方法,其做法较简单,证明较复杂,具体讲解如下: Difference of Gaussian(DOG)是高斯函数的差分 ...

最新文章

  1. Linux基础知识:正则表达式
  2. Ubuntu Server 14.04 下root无法ssh登陆
  3. 更新源列表及设置方法
  4. mysql 断电 启动不了 start: Job failed to start
  5. SAP S4HANA里关于生产订单的一些重要数据库表
  6. Linux终端下打印带颜色的信息
  7. 如何让电脑开机自启动程序
  8. python打包,上传包知识点学习
  9. Maxwell的简介与使用
  10. 傅里叶变换 相位谱 幅度谱
  11. Activiti工作流的流转任务和结束任务
  12. sendmail php qq垃圾邮件,发送邮件,被QQ定义为疑似垃圾邮件,如何解决这个有关问题...
  13. 老湿人----山河拱手,为君一笑
  14. Android 虚拟按键与沉浸式的适配
  15. 软件定义网络实验之SDN网络简单管理及开发
  16. 中国四大名著【电子书】在线阅读
  17. 旅游类网站的服务器配置,旅游各类 网站界面
  18. ObiFruid创建流体,ObiFruid学习笔记
  19. 如何快速学习一门技术?
  20. 科学史专家们竟把中国的算盘当成最早的计算机?这个博物馆为你展示计算机2000年历史

热门文章

  1. 为什么用conda?
  2. 牛腩新闻系统--.NET使用一般处理程序生成验证码
  3. Java 基础学习之字符串的简单操作和适配器设计模式
  4. 家用台式计算机需要安装的软件,新的电脑应该安装哪些应用?推荐这9个软件够你用一生!...
  5. pci规划的三个原则_LTE中PCI规划目的和原则
  6. 「五福一安」大小的 18W 充电器 — Anker Nano 18W 评测
  7. 个人资料管理经验总结
  8. 【C语言】第五章 - 操作符
  9. iOS---Local declaration of hides问题
  10. 用VMware安装Windows 8.x虚拟机镜像系统详细流程