# WEEK 9 (18-22/1)
## Streamlit (Mon, 18/1/2021)
## Intro to OpenCV (Tue, 19/1/2021)
***==WHAT IS COMPUTER VISION?==***
**==Computer Vision==** is an interdisciplinary scientific field that deals with how computers can gain high-level understanding from digital images or videos.
* scene reconstruction
* video tracking
* object recognition
* 3D pose estimation
* 3D scene modeling
* image restoration
### ==IMAGE SEGMENTATION USING COLORSPACE==
#### **Contours**
Step 1: convert to binary image with black background
Step 2: draw contour
#### **HSV**

HSV: cylindrical geometries with hue starting at the red primary at 0°, passing through the green primary at 120° and the blue primary at 240°, and then wrapping back to red at 360°.
### **==findContour==**
[**Contour Retrieval Mode (Hierarchy)**: ](https://docs.opencv.org/master/d9/d8b/tutorial_py_contours_hierarchy.html)

1. `RETR_LIST`: Retrieves all the contours, but doesn't create any parent-child relationship.
2. `RETR_EXTERNAL`: Returns only extreme outer flags. All child contours are left behind.
3. `RETR_CCOMP`: Retrieves all the contours and arranges them to a 2-level hierarchy.
4. `RETR_TREE`: The final guy, Mr.Perfect. It retrieves all the contours and creates a full family hierarchy list.
---> return 2 things: first thing is a collection of all contours correspoding to the number of items, second is the hierarchy
[**Countour Approximation Method**:](https://docs.opencv.org/trunk/d4/d73/tutorial_py_contours_begin.html)
cv.CHAIN_APPROX_NONE: all the boundary points are stored
cv.CHAIN_APPROX_SIMPLE: just two end points of that line
#### Bounding rect: return width height and top left corner
---
## Intermediate OpenCV (Wed, 20/1/2021)
### Thresholding:
Step 1: Mask using threshold technique
* grayscale
* blur
* ---> threshold
Step 2: contour
cv2.threshold: return 2 element
1. The threshold it self
2. the image
#### BLUR
bigger kernel size ---> more blurry