mirror of https://github.com/davisking/dlib.git
Added missing assert and made minor refinements to spec.
This commit is contained in:
parent
d7debab691
commit
552196b01e
|
@ -120,11 +120,21 @@ namespace dlib
|
||||||
label_image_type& label_img
|
label_image_type& label_img
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
// make sure requires clause is not broken
|
||||||
|
DLIB_ASSERT(is_same_object(img, label_img) == false,
|
||||||
|
"\t unsigned long label_connected_blobs()"
|
||||||
|
<< "\n\t The input image and output label image can't be the same object."
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
std::stack<point> neighbors;
|
std::stack<point> neighbors;
|
||||||
label_img.set_size(img.nr(), img.nc());
|
label_img.set_size(img.nr(), img.nc());
|
||||||
assign_all_pixels(label_img, 0);
|
assign_all_pixels(label_img, 0);
|
||||||
unsigned long next = 1;
|
unsigned long next = 1;
|
||||||
|
|
||||||
|
if (img.size() == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
const rectangle area = get_rect(img);
|
const rectangle area = get_rect(img);
|
||||||
|
|
||||||
std::vector<point> window;
|
std::vector<point> window;
|
||||||
|
|
|
@ -153,6 +153,7 @@ namespace dlib
|
||||||
- get_neighbors(point(c,r), neighbors) is a legal expression where neighbors
|
- get_neighbors(point(c,r), neighbors) is a legal expression where neighbors
|
||||||
is of type std::vector<point>.
|
is of type std::vector<point>.
|
||||||
- is_connected(img, point(c,r), point(c2,r2)) is a valid expression.
|
- is_connected(img, point(c,r), point(c2,r2)) is a valid expression.
|
||||||
|
- is_same_object(img, label_img) == false
|
||||||
ensures
|
ensures
|
||||||
- This function labels each of the connected blobs in img with a unique integer
|
- This function labels each of the connected blobs in img with a unique integer
|
||||||
label.
|
label.
|
||||||
|
@ -175,8 +176,11 @@ namespace dlib
|
||||||
- #label_img[r][c] == 0
|
- #label_img[r][c] == 0
|
||||||
- else
|
- else
|
||||||
- #label_img[r][c] != 0
|
- #label_img[r][c] != 0
|
||||||
|
- if (img.size() != 0) then
|
||||||
- returns max(array_to_matrix(label_img))+1
|
- returns max(array_to_matrix(label_img))+1
|
||||||
(i.e. returns a number one greater than the maximum blob id number)
|
(i.e. returns a number one greater than the maximum blob id number)
|
||||||
|
- else
|
||||||
|
- returns 0
|
||||||
- blob labels are contiguous, therefore, the number returned by this function is
|
- blob labels are contiguous, therefore, the number returned by this function is
|
||||||
the number of blobs in the image (including the background blob).
|
the number of blobs in the image (including the background blob).
|
||||||
- It is guaranteed that is_connected() and is_background() will never be
|
- It is guaranteed that is_connected() and is_background() will never be
|
||||||
|
|
Loading…
Reference in New Issue