www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I2_09_1_edge_corner_houghcircle.m

    clear all;clc;close all;imtool close all

%% 僄僢僕専弌 %%%%%%%%
I = imread('coins.png');        % 夋憸偺撉崬
figure; imshow(I);              % 昞帵
%%
BWsobel   = edge(I,'sobel');               % 僜乕儀儖朄
figure;imshow(BWsobel  ); title('sobel');
%%
BWcanny = edge(I,'canny');                 % 僉儍僯乕朄
figure;imshow(BWcanny); title('canny');

%% 僐乕僫乕専弌 %%%%%%%%
I = checkerboard(50,2,2);     % 僥僗僩夋憸偺惗惉
figure;imshow(I);
%%
C = detectHarrisFeatures(I);   % Harris僐乕僫乕専弌婍
%C = detectMinEigenFeatures(I); % 嵟彫屌桳抣朄
I1 = insertMarker(I,C,'circle','Size',5,'Color','magenta');
imshow(I1);shg;

%% 僙儘僥乕僾丗僴僼曄姺偵傛傞墌偺専弌 %%%%%%%%
RGB = imread('tape.png');
figure;imshow(RGB);
%% 墌偺専弌
[center, radius] = imfindcircles(RGB,[60 100],'Sensitivity',0.9)      %敿宎60~100
%% 墌偲拞怱揰偺昞帵
viscircles(center,radius);                  % 墌傪昤夋
hold on; plot(center(:,1),center(:,2),'yx','LineWidth',4); hold off; % 拞怱揰昞帵

%% 廔椆











%% 墌専弌 偺捛壛偺僨儌
G = imread('I2_09_1_circlesBrightDarkSquare.png');  % 夋憸偺撉崬傒
figure;imshow(G);                     % 昞帵
% 攚宨傛傝埫偄墌偺専弌詯鼈艜\帵
[cDark, rDark] = imfindcircles(G,[30 65],'ObjectPolarity','dark')
viscircles(cDark, rDark,'LineStyle','--');shg;
% 攚宨傛傝柧傞偄墌偺専弌聬鼈艜\帵
[cBright, rBright] = imfindcircles(G,[30 65],'ObjectPolarity','bright','EdgeThreshold',0.2)
viscircles(cBright, rBright,'EdgeColor','b');shg;




%% [嶲峫]
% 墌偺専弌丒墌偲拞怱揰偺昞帵屻丄敿宎抣傪夋憸忋偵彂崬傓
message = sprintf('The estimated radius is %2.1f pixels', radius);
text(15,300,sprintf('radius : %2.1f', radius), 'Color','y','FontSize',20);

% 墌偲拞怱揰傪夋憸僨乕僞偵彂崬傓応崌
Ir = insertShape(RGB, 'Circle', [center radius], 'Color','red', 'LineWidth',4);
Ir = insertShape(Ir, 'FilledCircle', [center 5], 'Color','yellow', 'Opacity',1);
imtool(Ir);

%% [嶲峫] 墌専弌偺僨儌夋憸偺嶌惉僗僋儕僾僩
G = imread('circlesBrightDark.png');  % 夋憸偺撉崬傒
G1 = insertShape(G,'FilledRectangle',[179,188,90,90],'Color','white','Opacity',1);
G1 = insertShape(G1,'FilledRectangle',[50,335,80,80],'Color','black','Opacity',1);
imwrite(G1, 'I2_09_1_circlesBrightDarkSquare.png')

%%
% Copyright 2014 The MathWorks, Inc.