Skip to content

Commit 63885a5

Browse files
author
Hakan Kurtulus
committed
Initial
1 parent bd81977 commit 63885a5

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

main.m

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
% Hakan Kurtulus
2+
% HXMKGP
3+
4+
clear all; close all; clc; % clear defined variable from previous run
5+
6+
im = imread('objects.jpg'); %circles are greater than rectangles
7+
%im = imread('objects_1.jpg'); %circles and rectangles are equal
8+
9+
[h, w, ~] = size(im); %get height and width of image
10+
11+
distR = double(im(:, :, 1)) - 0; %since we have only one dimention, first dimention of image will be enough
12+
13+
%L2 distance
14+
d2 = (distR .^2); %highlited to background, at the end we will have so big number for background but white parts will be close to 0
15+
16+
thres = 13000;
17+
results = d2 <= thres; %we set the boundary for image not to detect image itself but objects
18+
19+
results = bwmorph(results, 'erode', 1);
20+
results = bwmorph(results, 'open', 2);
21+
results = bwmorph(results, 'close', 2);
22+
23+
24+
stats = regionprops(results, 'BoundingBox'); %this gets the stats of each object, we used this with Gabor
25+
26+
figure, imshow(results);
27+
hold on
28+
29+
circle_num = 0;
30+
rec_num = 0;
31+
for i = 1 : length(stats)
32+
33+
dimentions = stats(i).BoundingBox;
34+
35+
YourText = sprintf(int2str(i)); %put the iteration numbe rto variable to print as string
36+
37+
if dimentions(3)== dimentions(4) %3 and 4 stand for height and width of object, if the values are equal it is circle ortherwise ellipse
38+
circle_num = circle_num+1;
39+
hText = text(dimentions(1) + dimentions(3)/2,dimentions(2)+dimentions(4)/2,YourText,'Color',[1 0 1],'FontSize',15); %put the pink string to image
40+
elseif dimentions(3)~= dimentions(4)
41+
rec_num = rec_num+1;
42+
hText = text(dimentions(1) + dimentions(3)/2,dimentions(2)+dimentions(4)/2,YourText,'Color',[0.1 0 0.5],'FontSize',15); %put the blue string to image
43+
end
44+
45+
rectangle('Position', stats(i).BoundingBox, 'EdgeColor', 'g', 'LineWidth', 3); %draw a rectangle also we used this with Gabor
46+
47+
end
48+
49+
h = [int2str(circle_num) ' Circle is found']
50+
k = [int2str(rec_num) ' Rectangle is found']
51+
52+
if circle_num == rec_num
53+
final = 'Circle and Rectangle numbers are equal.'
54+
elseif circle_num < rec_num
55+
final = 'Rectangle numbers are greater than circle numbers.'
56+
elseif circle_num > rec_num
57+
final = 'Circle numbers are greater than rectangler numbers.'
58+
end
59+

objects.jpg

17.9 KB
Loading

objects_1.jpg

19.1 KB
Loading

0 commit comments

Comments
 (0)