How does code working in matlab ?

1 view (last 30 days)
inverse_binary=not(handles.bw);
[handles.Lhandles.Num_object]=bwlabel(inverse_binary);
set(handles.text2,'string',10-handles.Num_object);
  6 Comments
Walter Roberson
Walter Roberson on 10 Jul 2021
We assume that handles.bw has been assigned the result of thresholding the image into black and white, 0 and 1. The "not" operator takes logical negation, replacing false (0) with true (1) and true (1) with false (0). The result effectively reverses black and white -- reverses foreground and background.
For example if you were looking black text on white background then the text would be 0, but (by convention) the processing routines such as labelling work mostly on 1s, so you want to change the black-on-white to white-on-black
Walter Roberson
Walter Roberson on 10 Jul 2021
Imagine a case where the parking lot pavement is pretty much black, and the cars are distinguishablely something brighter. Then you threshold the image. The black parking lot would be 0 and the cars would be 1. Now take the logical negation so that the 0 (pavement) becomes 1 and the 1 (cars) becomes 0. Now you can label the result, and each blob of 1s will correspond to a section of adjacent available parking spaces.
Questions for you to think about:
  • how can you distinguish between adjacent available spaces? Are the edges of the spaces marked?
  • how can you deal with black cars, since those are dark too?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 9 Jul 2021
inverse_binary=not(handles.bw);
[handles.L, handles.Num_object]=bwlabel(inverse_binary);
set(handles.text2,'string',10-handles.Num_object);
You were missing a comma.

More Answers (1)

Steven Lord
Steven Lord on 9 Jul 2021
doc not
doc bwlabel
doc set

Tags

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!