diff --git a/opencv.html.markdown b/opencv.html.markdown
index 45046af6..4c52595e 100644
--- a/opencv.html.markdown
+++ b/opencv.html.markdown
@@ -86,13 +86,59 @@ cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
# Adding Text On Images
cv2.putText(img,"Hello World!!!", (x,y), cv2.FONT_HERSHEY_SIMPLEX, 2, 255)
+# Blending Images
+img1 = cv2.imread('cat.png')
+img2 = cv2.imread('openCV.jpg')
+dst = cv2.addWeighted(img1,0.5,img2,0.5,0)
+
+# Thresholding image
+# Binary Thresholding
+_,thresImg = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
+# Adaptive Thresholding
+adapThres = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,2)
+
+# Blur Image
+# Gaussian Blur
+blur = cv2.GaussianBlur(img,(5,5),0)
+# Median Blur
+medianBlur = cv2.medianBlur(img,5)
+
+# Canny Edge Detection
+img = cv2.imread('cat.jpg',0)
+edges = cv2.Canny(img,100,200)
+
+# Face Detection using Haar Cascades
+# Download Haar Cascades from https://github.com/opencv/opencv/blob/master/data/haarcascades/
+import cv2
+import numpy as np
+face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
+eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
+
+img = cv2.imread('human.jpg')
+gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
+
+aces = face_cascade.detectMultiScale(gray, 1.3, 5)
+for (x,y,w,h) in faces:
+ cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
+ roi_gray = gray[y:y+h, x:x+w]
+ roi_color = img[y:y+h, x:x+w]
+ eyes = eye_cascade.detectMultiScale(roi_gray)
+ for (ex,ey,ew,eh) in eyes:
+ cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
+
+cv2.imshow('img',img)
+cv2.waitKey(0)
cv2.destroyAllWindows()
-# destroyAllWindows() destroys all windows. If you wish to destroy specific window pass the exact name of window you created.
+# destroyAllWindows() destroys all windows.
+# If you wish to destroy specific window pass the exact name of window you created.
```
Further Reading:
+Download Cascade from
+
+
OpenCV drawing Functions