Regarding the imutils
library related to OpenCV, I have the following questions:
What is the function of
contours.sort_contours()
?(cnts, _) = contours.sort_contours(cnts)
In the above statement, what is the meaning of(cnts, _)
, especially'_'
Note: cnts
is a variable containing the contours of the recognized image
My English is not very good, sorry! Thank you all for your answers and help!
CodePudding user response:
The imutils
library is a convenience library written to make basic image processing tasks easier (https://github.com/PyImageSearch/imutils).
One such task is sorting and labelling contours in images. Based on documentation provided here, there is a separate contours.py
file hosting sort_contours()
and label_contour
functions. (You need to remember that these functions can be used only after finding contours using OpenCV
)
Now to answer your questions:
1. What is the function of contours.sort_contours()
?
- I will refer you to a sample code here. In line 35, the author accesses the function
sort_contour()
from the filecontours.py
in this way:contours.sort_contours()
. - The function accepts two parameters: the contours and the sorting arrangements ("left-to-right", "right-to-left", "top-to-bottom", "bottom-to-top")
- The function returns a list of the sorted contours and its corresponding bounding boxes
2. Understanding (cnts, _) = contours.sort_contours(cnts)
- As stated previously, the function accepts contours as input
cnts
. - The same variable
cnts
is used to store the sorted contours. - Since the function returns dual output (sorted contours and its bounding boxes), the second variable is assigned
_
, which stores the bounding boxes._
is mostly used a variable when it will not be needed for further processing.