• 大小: 3KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: 霍夫变换  

资源简介

霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。最基本的霍夫变换是从黑白图像中检测直线(线段)。

资源截图

代码片段和文件信息

function [hough_spacehough_circlepara] = hough_circle(BWstep_rstep_angler_minr_maxp);
%[HOUGH_SPACEHOUGH_CIRCLEPARA] = HOUGH_CIRCLE(BWSTEP_RSTEP_ANGLER_MAXP)
%------------------------------算法概述-----------------------------
% 该算法通过a = x-r*cos(angle),b = y-r*sin(angle)将圆图像中的边缘点
% 映射到参数空间(abr)中,由于是数字图像且采取极坐标,angle和r都取
% 一定的范围和步长,这样通过两重循环(angle循环和r循环)即可将原图像
% 空间的点映射到参数空间中,再在参数空间(即一个由许多小立方体组成的
% 大立方体)中寻找圆心,然后求出半径坐标。
%-------------------------------------------------------------------

%------------------------------输入参数-----------------------------
% BW:二值图像;
% step_r:检测的圆半径步长
% step_angle:角度步长,单位为弧度
% r_min:最小圆半径
% r_max:最大圆半径
% p:以p*hough_space的最大值为阈值,p取0,1之间的数
%-------------------------------------------------------------------

%------------------------------输出参数-----------------------------
% hough_space:参数空间,h(abr)表示圆心在(ab)半径为r的圆上的点数
% hough_circl:二值图像,检测到的圆
% para:检测到的圆的圆心、半径
%-------------------------------------------------------------------

% From InternetModified by mhjerry2011-12-11

[mn] = size(BW);
size_r = round((r_max-r_min)/step_r)+1;
size_angle = round(2*pi/step_angle);
 
hough_space = zeros(mnsize_r);
 
[rowscols] = find(BW);
ecount = size(rows);
 
% Hough变换
% 将图像空间(xy

评论

共有 条评论