In the previous posts, Simple Thresholding and Adaptive Thresholding were explained. In Simple Thresholding, the global value of threshold was used which remained constant throughout. In Adaptive thresholding, the threshold value is calculated for smaller regions with different threshold values for different regions with respect to the change in lighting.
In Otsu Thresholding, a value of the threshold isn’t chosen but is determined automatically. A bimodal image (two distinct image values) is considered. The histogram generated contains two peaks. So, a generic condition would be to choose a threshold value that lies in the middle of both the histogram peak values.
We use the Traditional
cv2.threshold function and use
cv2.THRESH_OTSU as an extra flag.
Syntax: cv2.threshold(source, thresholdValue, maxVal, thresholdingTechnique)
-> source: Input Image array (must be in Grayscale).
-> thresholdValue: Value of Threshold below and above which pixel values will change accordingly.
-> maxVal: Maximum value that can be assigned to a pixel.
-> thresholdingTechnique: The type of thresholding to be applied.
Below is the Python code explaining Otsu Thresholding Technique –
The calculation accepts that the picture contains two classes of pixels following foreground and background pixels, it at that point ascertains the ideal limit isolating the two classes with the goal that their consolidated spread is insignificant.
- Python | Thresholding techniques using OpenCV | Set-2 (Adaptive Thresholding)
- Python | Thresholding techniques using OpenCV | Set-1 (Simple Thresholding)
- MATLAB | Change the color of background pixels by OTSU Thresholding
- OpenCV: Segmentation using Thresholding
- Mahotas - Bernsen local thresholding
- MATLAB | Converting a Grayscale Image to Binary Image using Thresholding
- Mahotas - Otsu's method
- Looping Techniques in Python
- Short Circuiting Techniques in Python
- OpenCV - Facial Landmarks and Face Detection using dlib and OpenCV
- Gun Detection using Python-OpenCV
- Python OpenCV: Meanshift
- OpenCV Python Tutorial
- Python OpenCV: Epipolar Geometry
- OCR of English alphabets in Python OpenCV
- Python OpenCV - cv2.polylines() method
- Detect an object with OpenCV-Python
- Perspective Transformation - Python OpenCV
- OpenCV | Motion Blur in Python
- Python OpenCV - Affine Transformation
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.