Navigate your LinkedIn feed using Computer vision
In this article we will explore how you can control social media feed -not only Linkedin- or do a specific action on it with Computer vision.
I invite you to follow Programming Hero on Youtube, which inspired me to make this video.
To make this project, we first need a camera, IDE(Integrated development environment), and Python, you need to install some package on Python and you are ready to go!
Phase I | Packages :
What is openCV :
What is Numpy ? :
What is Pyautogui ? :
We will use it to let Python scripts control the mouse and the keyboard to automate interactions, ideal for bots! ??
We've all had times like this, haven't we?...??
Image source ?? : https://www.dofus.com/fr/forum/1769-moderation/2311668-sujet-unique-bots-dofus-retro?page=12
import cv2
import numpy as np
import pyautogui
Phase II | Set up the camera:
cap = cv2.VideoCapture(0)?
cap = cv2.VideoCapture(0)?
while True:
? ? ret, frame = cap.read()?
? ? cv2.imshow('frame',frame)
? ? if cv2.waitKey(10) == ord('q'):
? ? ? ? break
cap.release()
cv2.destroyAllWindows()
Phase III | Detecting a specific object
Image source : https://gfycat.com/discover/lighting-and-shadows-gifs
lower_black = np.array([0, 0, 0]
upper_black = np.array([350,55,100]))
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, lower_black, upper_black)
cv2.imshow('frame', frame)
领英推荐
Phase IV | Get rid of the noise :
Image source : https://docs.opencv.org/3.4/d4/d73/tutorial_py_contours_begin.html#:~:text=To%20draw%20the%20contours%2C%20cv,useful%20when%20drawing%20individual%20contour.
contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
? ? for x in contours:
? ? ? ? area = cv2.contourArea(x)
? ? ? ? print(x)
? ? for x in contours:
? ? ? ?area = cv2.contourArea(x)
? ? ? ?if area > 1000:
cv2.drawContours(frame, contours, -1, (0,255,0),2)
x, y, w, h = cv2.boundingRect(x)
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 3))
Phase V | Configuration of the command:
y = 0
prev_y = y
That's it you are done ??
import cv2
import numpy as np
import pyautogui
cap = cv2.VideoCapture(0)
yellow_lower = np.array([22, 93, 0])
yellow_upper = np.array([45, 255, 255])
prev_y = 0
while True:
? ? ret, frame = cap.read()
? ? hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
? ? mask = cv2.inRange(hsv, yellow_lower, yellow_upper)
? ? contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
? ? for x in contours:
? ? ? ? area = cv2.contourArea(x)
? ? ? ? if area > 1000:
? ? ? ? ? ? x, y, w, h = cv2.boundingRect(x)
? ? ? ? ? ? cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
? ? ? ? ? ? if y < prev_y :
? ? ? ? ? ? ? ? pyautogui.press('space')
? ? ? ? ? ? prev_y = y
? ? cv2.imshow('frame', frame)
? ? if cv2.waitKey(10) == ord('q'):
? ? ? ? break
cap.release()
cv2.destroyAllWindows()
You can use the original one from Programming Hero here: https://github.com/ProgrammingHero1/webcamfun/blob/master/main.py
Restrictions :
Reference :
1 - GeeksforGeeks. (2019, August 2). Python OpenCV | cv2.imread() method. https://www.geeksforgeeks.org/python-opencv-cv2-imread-method/#:%7E:text=OpenCV%2DPython%20is%20a%20library,method%20returns%20an%20empty%20matrix.