How to detect the object in my picture that be horizontal vertical or spot ?

3 views (last 30 days)
I have many pictures. as the picture below
  1. Vertical
  2. Horizontal
  3. spot
spot.jpg
horizontal.jpg
vertical.jpg
What should I write the codes to detect specific my picture that is vertical horizontal or spot?
Please help me if you can^^
love you
Thank you for your attention ^^

Accepted Answer

KSSV
KSSV on 8 Feb 2019
I = imread('spot.jpeg') ;
I = rgb2gray(I) ;
[y,x] = find(I==0) ;
%% Remove outliers
idx = abs(x-mean(x))>3*nanstd(x) ;
idy = abs(y-mean(y))>3*nanstd(y) ;
id = idx|idy ;
x(id) = [] ; y(id) = [] ;
%% Get length and breadth
x0 = min(x) ; x1 = max(x) ;
y0 = min(y) ; y1 = max(y) ;
L = y1-y0 ;
B = x1-x0 ;
figure
imshow(I)
hold on
plot(x,y,'.r')
If L > B, than vertical
If L < B, than horizontal

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!