Processing a video means, performing operations on the video frame by frame. Frames are nothing but just the particular instance of the video in a single point of time. We may have multiple frames even in a single second. Frames can be treated as similar to an image.
So, whatever operations we can perform on images can be performed on frames as well. Let us see some of the operations with examples.
Adaptive Threshold –
By using this technique we can apply thresholding on small regions of the frame. So the collective value will be different for the whole frame.
Python3
import cv2
import numpy as np
cap = cv2.VideoCapture( 'sample.mp4' )
while (cap.isOpened()):
ret, frame = cap.read()
frame = cv2.resize(frame, ( 540 , 380 ), fx = 0 , fy = 0 ,
interpolation = cv2.INTER_CUBIC)
cv2.imshow( 'Frame' , frame)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
Thresh = cv2.adaptiveThreshold(gray, 255 , cv2.ADAPTIVE_THRESH_MEAN_C,
cv2.THRESH_BINARY_INV, 11 , 2 )
cv2.imshow( 'Thresh' , Thresh)
if cv2.waitKey( 25 ) & 0xFF = = ord ( 'q' ):
break
cap.release()
cv2.destroyAllWindows()
|
Output:

Smoothing –
Smoothing a video means removing the sharpness of the video and providing a blurriness to the video. There are various methods for smoothing such as cv2.Gaussianblur(), cv2.medianBlur(), cv2.bilateralFilter(). For our purpose, we are going to use cv2.Gaussianblur().
Python3
import cv2
import numpy as np
cap = cv2.VideoCapture( 'sample.mp4' )
while (cap.isOpened()):
ret, frame = cap.read()
frame = cv2.resize(frame, ( 540 , 380 ), fx = 0 , fy = 0 ,
interpolation = cv2.INTER_CUBIC)
cv2.imshow( 'Frame' , frame)
gaussianblur = cv2.GaussianBlur(frame, ( 5 , 5 ), 0 )
cv2.imshow( 'gblur' , gaussianblur)
if cv2.waitKey( 25 ) & 0xFF = = ord ( 'q' ):
break
cap.release()
cv2.destroyAllWindows()
|
Output:

Edge Detection –
Edge detection is a useful technique to detect the edges of surfaces and objects in the video. Edge detection involves the following steps:
- Noise reduction
- Gradient calculation
- Non-maximum suppression
- Double threshold
- Edge tracking by hysteresis
Python3
import cv2
import numpy as np
cap = cv2.VideoCapture( 'sample.mp4' )
while (cap.isOpened()):
ret, frame = cap.read()
frame = cv2.resize(frame, ( 540 , 380 ), fx = 0 , fy = 0 ,
interpolation = cv2.INTER_CUBIC)
cv2.imshow( 'Frame' , frame)
edge_detect = cv2.Canny(frame, 100 , 200 )
cv2.imshow( 'Edge detect' , edge_detect)
if cv2.waitKey( 25 ) & 0xFF = = ord ( 'q' ):
break
cap.release()
cv2.destroyAllWindows()
|
Output:

Bitwise Operations –
Bitwise operations are useful to mask different frames of a video together. Bitwise operations are just like we have studied in the classroom such as AND, OR, NOT, XOR.
Python3
import cv2
import numpy as np
cap = cv2.VideoCapture( 'sample.mp4' )
while (cap.isOpened()):
ret, frame = cap.read()
frame = cv2.resize(frame, ( 540 , 380 ), fx = 0 , fy = 0 ,
interpolation = cv2.INTER_CUBIC)
cv2.imshow( 'Frame' , frame)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
_, mask = cv2.threshold(gray, 0 , 255 , cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
BIT = cv2.bitwise_not(frame, frame, mask = mask)
cv2.imshow( 'BIT' , BIT)
if cv2.waitKey( 25 ) & 0xFF = = ord ( 'q' ):
break
cap.release()
cv2.destroyAllWindows()
|
Output:

We can perform any other operations according to our needs. These are just few basic operations that are mostly used.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
10 Apr, 2023
Like Article
Save Article