<个人学习记录>斑点检测
文章目录
- 前言
- 一、检测LoG斑点的Matlab源程序
- 1.提取斑点
- 2.绘制特征点
- 3.读入数据
- 二. 函数了解
- 三,
- ——《Matlab图像处理——能力提升与应用案例》
前言
斑点是数字图像的主要特征。斑点通常是指与周围有着颜色和灰度差别的区域。
斑点检测是区域检测的一种特例,是许多特征生成、目标识别等方法的重要预处理环节。
一、检测LoG斑点的Matlab源程序
1.提取斑点
功能函数如下:
function [points]=log_Blob(img,o_nb_blobs)
%功能:提取LoG斑点
%输入:img-输入的图像 o_nb_blobs-需要检测的斑点区域的数量
% 输出:points-检测出的斑点%输入图像
img=double(img(:,:,1));
%设定检测到斑点的数量
if nargin==1 %函数输入参数个数nb_blobs=120;
elsenb_blobs=o_nb_blobs;
end
%设定LoG参数
sigma_begin=2;
sigma_end=15;
sigma_step=1;
sigma_array=sigma_begin:sigma_step:sigma_end;
sigma_nb=numel(sigma_array);%返回数组中元素的个数
%变量
img_height=size(img,1);
img_width=size(img,2);
%计算尺度规范化高斯拉普拉斯算子
snlo=zeros(img_height,img_width,sigma_nb);
for i=1:sigma_nbsigma=sigma_array(i);snlo(:,:,1)= sigma* sigma*imfilter(img,fspecial('log',floor(6* sigma+1), sigma),'replicate');
end
%搜索局部极值
snlo_dil=imdilate(snlo,ones(3,3,3));
blob_candidate_index=find(snlo==snlo_dil);
blob_candidate_value=snlo(blob_candidate_index);
[tmp,index]=sort(blob_candidate_value,'descend');
blob_index=blob_candidate_index(index(1:min(nb_blobs,numel(index))));
[lig,col,sca]=ind2sub([img_height,img_width,sigma_nb],blob_index);
points=[lig,col,3*reshape(sigma_array(sca),[size(lig,1),1])];
end
2.绘制特征点
代码如下:
function draw(img,pt,str)
% 功能:在图像中绘制出特征点
% 输入:img-输入的图像 pt-检测出的特征点的坐标 str-在图上显示的名称
figure('Name',str);
imshow(img);
hold on ;
axis off ;
switch size (pt,2) case 2s=2;for i=1:size(pt,1)rectangle('Position',[pt(i,2)-s,pt(i,1)-s,1*s,1*s],'Curvature',[0 0],'EdgeColor','b','LineWidth',2);endcase 3for i=1:size(pt,1)rectangle('Position',[pt(i,2)-pt(i,3),pt(i,1)-pt(i,3),2*pt(i,3),2*pt(i,3)],'Curvature',[1 1],'EdgeColor','r','LineWidth',2);end
end
end
3.读入数据
调用函数进行处理:
img=imread('2.jpg');
imshow(img)
pt=log_Blob(rgb2gray(img));
draw(img,pt,'LoG Lindeberg');
二. 函数了解
r=size(A,1) 该语句返回的是矩阵A的行数;c=size(A,2) 该语句返回的是矩阵A的列数。
rectangle(‘Position’, pos) 在二维坐标中创建一个矩形。将pos指定为数据单元中形式为[x y w h]的四元素向量。x和y元素决定位置,w和h元素决定大小。函数绘制到当前坐标轴中,而不清除坐标轴中现有的内容。
rectangle(‘Position’,pos,‘Curvature’,cur) 为矩形的边添加曲率。对于沿水平和垂直方向的不同曲率,将cur指定为形式[horizontal vertical]的二元矢量。对于沿所有边相同长度的曲率,将cur指定为标量值。指定0(无曲率)和1(最大曲率)之间的值。使用[1 1]创建一个椭圆或圆。
rectangle(, Name, Value) 使用一个或多个Name - Value对参数指定矩形属性。例如,‘FaceColor’, 'red’指定一个红色填充颜色。
rectangle (ax, _) 在ax指定的坐标轴中创建矩形,而不是在当前坐标轴(gca)中创建矩形。在前面的语法中,选项ax可以放在任何输入参数组合之前。r= rectangle()返回矩形对象。创建矩形后,使用r修改矩形的属性。
*g = imfilter(f, w, filtering_mode, boundary_options, size_options) 其中,f为输入图像,w为滤波掩模,g为滤波后图像。filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定 *
三,
https://blog.csdn.net/billzhaobaigu/article/details/117000683
https://blog.csdn.net/fengxianghui01/article/details/89474461高斯滤波
——《Matlab图像处理——能力提升与应用案例》
<个人学习记录>斑点检测相关推荐
- python小括号报错_Python学习记录:括号配对检测问题
Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...
- 【opencv学习】Blob检测斑点
今天学习blob的可用于斑点检测,其实这个斑点只是普通的这么叫法,专业点是的Blob是图像中共享某些共同属性(例如灰度值)的一组连接的像素. 如下图是今天检测的试验图 算法过程是: 1:Thresho ...
- CVPR2019| 百度17篇CVPR论文学习记录(包含:无人驾驶、神经网络、GAN、无监督学习、目标检测)
首先感谢现在网上资源丰富,能够获得很多人的总结,结合自身实际进行了学习记录. 并着重标注了其中关键核心 目录 1)Taking A Closer Look at Domain Shift: Categ ...
- OpenCV3学习(11.4)斑点检测 SimpleBlobDetector
1. 什么是斑点 图像特征点检测包括角点和斑点,今天来说说斑点,斑点是指二维图像中和周围颜色有颜色差异和灰度差异的区域,因为斑点代表的是一个区域,所以其相对于单纯的角点,具有更好的稳定性和更好的抗干扰 ...
- Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...
- Android开发技术周报176学习记录
Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...
- Redis的学习记录
Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...
- php+打开文件和其子文件,【php学习记录】 引用、打开文件
[php学习记录] 引用.打开文件 一.PHP echo 和 print 语句 echo 和 print 区别: echo - 可以输出一个或多个字符串 print - 只允许输出一个字符串,返回值总 ...
- 小余学调度:学习记录(2022年1月)
提 小余学调度系列文章,记录小余同学入职电力调度员一路的学习记录,由于工作性质,在这个系列,只写能公开的知识点,不涉及机密. 提示:专栏解锁后,可以查看该专栏所有文章 文章目录 1母线充电保护操作票 ...
- 小余学调度:学习记录(2021.8.30-2021-9.5)
小余学调度系列文章,记录小余同学入职电力调度员一路的学习记录,由于工作性质,在这个系列,只写能公开的知识点,不涉及机密. 提示:专栏解锁后,可以看这个专栏所有文章,划算. 文章目录 一.如何从接线图中 ...
最新文章
- Linux内核学习总结
- 专访DeepID发明者孙祎:关于深度学习与人脸算法的深层思考
- 【Java HashMap】常用函数的使用
- 使用Google Guice消除实例之间的歧义
- 听说做开发的工资随随便便就上10k?
- 并不对劲的bzoj5340:loj2552:uoj399:p4564: [Ctsc2018]假面
- fiddler无法抓取浏览器的https请求
- 折腾!在树莓派上运行DOS
- 【BERT-多标签文本分类实战】之四——数据集预处理
- 中国AI公司会议室取名简史
- socket套接字编程 | 粘包现象 | 报头 | struck模块
- [激光原理与应用-25]:《激光原理与技术》-11- 激光产生技术-非线性技术之激光倍频、非线性晶体CLBO、BBO、LBO
- Python面向对象:小明和小美爱跑步
- 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】
- 小身材也有强劲性能,树莓派2代B型图形界面搞机
- CometOJ #10 沉鱼落雁 | 思维
- 条理清晰的入门:使用Java实现RSA加密解密
- 移动端电影院:享受触手可及的幸福
- 电商物流系统技术架构进化史
- Python安装配置: python install python安装
热门文章
- windows server 2008r2更新server pack 1补丁包和勒索病毒nsa,永恒之蓝 补丁包
- python实现比较两手牌的大小--斗地主规则
- 如何确立人生目标?100个人生目标清单总汇
- 厦门大学353卫生综合考研参考书目
- Win10禁止更新设备驱动的几种方式
- linux oel7没有网络,OEL7.2下Oracle11.2.0.4RAC部署
- zh-CN、zh-Hans区别
- 程序员数学(23)–图形的旋转与中心对称
- access用姓名字段统计人数_用Access统计新生数据
- 运营面试问题和答案(一)