资源简介
图像处理,霍夫圆边缘检测,MATLAB,霍夫变换
代码片段和文件信息
function [y0detectx0detectAccumulator] = houghcircle(Imbinaryrthreshnumpeaks)
%HOUGHCIRCLE - detects circles with specific radius in a binary image.
%
%Comments:
% Function uses Standard Hough Transform to detect circles in a binary image.
% According to the Hough Transform for circles each pixel in image space
% corresponds to a circle in Hough space and vise versa.
% upper left corner of image is the origin of coordinate system.
%
%Usage: [y0detectx0detectAccumulator] = houghcircle(Imbinaryrthresh)
%
%Arguments:
% Imbinary - a binary image. image pixels that have value equal to 1 are
% interested pixels for HOUGHLINE function.
% r - radius of circles.
% thresh - a threshold value that determines the minimum number of
% pixels that belong to a circle in image space. threshold must be
% bigger than or equal to 4(default).
%
%Returns:
% y0detect - row coordinates of detected circles.
% x0detect - column coordinates of detected circles.
% Accumulator - the accumulator array in Hough space.
%
%Written by :
% Amin Sarafraz
% Photogrammetry & Computer Vision Devision
% Geomatics DepartmentFaculty of Engineering
% University of TehranIran
% sarafraz@geomatics.ut.ac.ir
%
%May 52004 - Original version
%November 242004 - Modified versionfaster and better performance
if nargin == 2
thresh = 4;
numpeaks=1;
elseif nargin == 3
numpeaks=1;
end
if thresh < 4
error(‘treshold value must be bigger or equal to 4‘);
return
end
%Voting
Accumulator = zeros(size(Imbinary));
[yIndex xIndex] = find(Imbinary);
for cnt = 1:length(xIndex)
low=xIndex(cnt)-r;
high=xIndex(cnt)+r;
if (low<1) low=1; end
if (high>size(Imbinary2)) high=size(Imbinary2); end
for x0 = low:high
y01 = yIndex(cnt)-sqrt(r^2-(xIndex(cnt)-x0)^2);
y02 = yIndex(cnt)+sqrt(r^2-(xIndex(cnt)-x0)^2);
y01 = round(y01); y02 = round(y02);
if y01 < size(Imbinary1) & y01 >= 1
Accumulator(y01x0) = Accumulator(y01x0)+1;
end
if y02 < size(Imbinary1) & y02 >= 1
Accumulator(y02x0) = Accumulator(y02x0)+1;
end
end
end
% Finding local maxima in Accumulator
Accumulatortemp = Accumulator - thresh;
% [Potential_y0 Potential_x0]=find(Accumulatortemp<0);
% Accumulatortemp(Potential_y0Potential_x0)=0;
[y0detect x0detect hnew] = houghpeaks_circle(Accumulatortempnumpeaks);
% y0detect = []; x0detect = [];
% AccumulatorbinaryMax = imregionalmax(Accumulator);
% [Potential_y0 Potential_x0] = find(AccumulatorbinaryMax == 1);
% Accumulatortemp = Accumulator - thresh;
% for cnt = 1:length(Potential_y0)
% if Accumulatortemp(Potential_y0(cnt)Potential_x0(cnt)) >= 0
% y0detect = [y0detect;Potential_y0(cnt)];
% x0detect = [x0dete
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3044 2010-01-08 21:54 霍夫圆变换\houghcircle.m
文件 2718 2010-01-08 19:18 霍夫圆变换\houghpeaks_circle.m
文件 3182 2010-01-09 21:44 霍夫圆变换\hough_circle_feed.m
目录 0 2010-05-04 22:37 霍夫圆变换
----------- --------- ---------- ----- ----
8944 4
- 上一篇:matlab BP神经网络 0-9数字识别
- 下一篇:arnold变换源代码
相关资源
- 基于MATLAB的图像边缘检测算法实验
- 图像处理/图像分割实验/prewitt/robert
- 基于matlab分别对彩色图像的RGB通道进
- 小波边缘检测matlab程序
- canny算子边缘检测,与matlab自带函数效
- 图像边缘检测小波变换
- canny算子matlab源代码本人亲测可用
- matlab 图像边缘检测代码
- MATLAB实现Canny图像边缘检测
- Gabor变换,MATLAB,边缘检测
- 8 matlab图像去噪 滤波 锐化 边缘检测
- 基于蚁群算法的图像边缘检测.zip
- 图像边缘检测matlab源码kirsch、Laplaci
- Canny边缘检测算法
- 基于形态学的matlab边缘检测小程序
- 蚁群算法用于图像的边缘检测
- matlab边缘检测代码
- 亚像素边缘检测matlab代码
- matlab小波变换图像边缘检测源代码
- matlab的canny边缘检测
- 多种图像边缘检测与分割处理matlab实
- 基于小波变换多尺度边缘检测
- snake边缘检测算法算法
- 东南大学 matlab 图像边缘检测算法 代
- 基于蚁群算法的图像边缘检测算法M
- 小波模极大值边缘检测+膨胀+边缘跟踪
- 数字图像处理作业
- matlab图像边缘检测sobel算子梯度图像
- canny边缘检测算法_代码
- matlab边缘监测程序
评论
共有 条评论