%------------------------------------------------------------------------
% AL-AZHAR UNIVERSITY
% FACULTY OF ENGINEERING
% SYSTEMS & COMPUTERS ENGINEERING Department
%------------------------------------------------------------------------
% Author : Ahmed Samieh Abd El-Wahab
% Date : 14 December 2006
%------------------------------------------------------------------------
% Shapes Classifier
% Step 1: Read image Read in
% Step 2: Convert image from rgb to gray
% Step 3: Threshold the image
% Step 4: Invert the Binary Image
% Step 5: Find the boundaries Concentrate
% Step 6: Determine Shapes properties
% Step 7: Classify Shapes according to properties
% Square = 3
% Rectangular = 2
% Circle = 1
% UNKNOWN = 0
%------------------------------------------------------------------------
function W = Classify(ImageFile)
% Step 1: Read image Read in
RGB = imread(ImageFile);
figure,
imshow(RGB),
title('Original Image');
% Step 2: Convert image from rgb to gray
GRAY = rgb2gray(RGB);
figure,
imshow(GRAY),
title('Gray Image');
% Step 3: Threshold the image Convert the image to black and white in order
% to prepare for boundary tracing using bwboundaries.
threshold = graythresh(GRAY);
BW = im2bw(GRAY, threshold);
figure,
imshow(BW),
title('Binary Image');
% Step 4: Invert the Binary Image
BW = ~ BW;
figure,
imshow(BW),
title('Inverted Binary Image');
% Step 5: Find the boundaries Concentrate only on the exterior boundaries.
% Option 'noholes' will accelerate the processing by preventing
% bwboundaries from searching for inner contours.
[B,L] = bwboundaries(BW, 'noholes');
% Step 6: Determine objects properties
STATS = regionprops(L, 'all'); % we need 'BoundingBox' and 'Extent'
% Step 7: Classify Shapes according to properties
% Square = 3 = (1 + 2) = (X=Y + Extent = 1)
% Rectangular = 2 = (0 + 2) = (only Extent = 1)
% Circle = 1 = (1 + 0) = (X=Y , Extent < 1)
% UNKNOWN = 0
figure,
imshow(RGB),
title('Results');
hold on
for i = 1 : length(STATS)
W(i) = uint8(abs(STATS(i).BoundingBox(3)-STATS(i).BoundingBox(4)) < 0.1);
W(i) = W(i) + 2 * uint8((STATS(i).Extent - 1) == 0 );
centroid = STATS(i).Centroid;
switch W(i)
case 1
plot(centroid(1),centroid(2),'wO');
case 2
plot(centroid(1),centroid(2),'wX');
case 3
plot(centroid(1),centroid(2),'wS');
end
end
return
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【工控老马出品,必属精品,亲测校正,质量保证】 资源名:MATLAB实现图像识别形状的程序源码.zip 资源类型:程序源代码 源码说明: 基于MATLAB实现图像识别形状的程序源码 MATLAB识别矩形、圆形等形状的源程序 包含完整源码和注释 非常适合借鉴学习 适合人群:新手及有一定经验的开发人员
资源推荐
资源详情
资源评论
收起资源包目录
MATLAB实现图像识别形状的程序源码.zip (29个子文件)
MATLAB实现图像识别形状的程序源码
lms matlab源代码.doc 135KB
loadFile.do.htm 43KB
Shape Recognation
Classify.m 2KB
test.bmp 399KB
loadFile.do_files
xmlicon_30x12.gif 260B
preview.jpg 12KB
exclamation.gif 64B
site3.css 3KB
question.gif 64B
fullstar_grey.gif 145B
mlc_logo.gif 3KB
dots_rnav_top.gif 152B
doc.gif 70B
blue_band_536x5.gif 646B
mail_brdr.gif 155B
ltblue_top_nav_trans.gif 117B
bullet.gif 57B
halfstar.gif 140B
cmnty1.css 10KB
90th.png 96B
s9904754585747.gif 43B
s_code.js 39KB
spacer.gif 43B
dots_rnav.gif 97B
00th.png 102B
fullstar.gif 145B
50th.png 105B
submitfile.gif 66B
Captcha.htm 7KB
共 29 条
- 1
工控老马
- 粉丝: 601
- 资源: 2625
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页