资源简介
利用随机霍夫变换进行圆的检测,matlab编写
代码片段和文件信息
%边缘检测
clear;
close all;
tic
yuantu=imread(‘pic.jpg‘);%读取图像文件
gray=rgb2gray(yuantu);%转换为灰度图
%threshold=graythresh(gray);
%gray=uint8(gray);
bw=im2bw(gray0.1);%转换为二值图
%threshold=50;
%bw=imextendedmin(graythreshold);
bw=bwareaopen(bw40);%去除小目标
%bwtu=edge_dec(yuantu2gray);
bw=~bw;%图像求补
%bw=imfill(bw‘holes‘);
sedisk=strel(‘disk‘4); %圆形结构元素
bw=imopen(bwsedisk);%开操作
bw=uint8(bw);
bwtu=edge(bw‘canny‘);%求边界
figure;imshow(bwtu);
[y_bwx_bw]=find(bwtu); %找出BW中为1 的点的横纵坐标
x_bw=x_bw‘;
y_bw=y_bw‘;
n=size(x_bw);
figure;
imshow(yuantu);
hold on;
%RHT霍夫变换圆检测简单程序
%初始化数据
[height width]=size(bwtu);%hight为行数,width为列数
p=zeros(1004);%开辟了100个参数对的空间,第四位为该参数在图中已找到的个数
p_num=0;%实际找到的圆参数的对数
quit_flg=0;%判断是否有候选圆的标志
num_limit=10;%参数重复出现的次数限制,大于则为候选圆参数
p_limit=5; %判断两参数相
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6560 2012-05-22 11:39 random hough transform.m
文件 11292 2010-07-30 20:14 pic.jpg
----------- --------- ---------- ----- ----
17852 2
评论
共有 条评论