3 example of computer vison technical test – Python / c++

To install opencv in python

pip install opencv-python
Enter fullscreen mode
Exit fullscreen mode

To install opencv in c++

git clone https://github.com/opencv/opencv.git
mkdir -p build && cd build
cmake ../opencv
make -j4
sudo make install
Enter fullscreen mode
Exit fullscreen mode

CmakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(opencv_c__) find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
set(CMAKE_CXX_STANDARD 17) add_executable(opencv_c__ main.cpp)
target_link_libraries(opencv_c__ ${OpenCV_LIBS})
Enter fullscreen mode
Exit fullscreen mode

Image description

def ex1(): cap = cv2.VideoCapture(0) object_detector = cv2.createBackgroundSubtractorMOG2() while True: ret, frame = cap.read() mask = object_detector.apply(frame) cv2.imshow('Video', mask) if cv2.waitKey(30) & 0xFF == 27: break cap.release() cv2.destroyAllWindows()
Enter fullscreen mode
Exit fullscreen mode
#include <iostream>

#include <opencv2/opencv.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>

int main() { cv::VideoCapture cap(0); cv::Ptr<cv::BackgroundSubtractor> object_detector = cv::createBackgroundSubtractorMOG2(); while (true) { cv::Mat frame; cap >> frame; cv::Mat mask; object_detector->apply(frame, mask); cv::imshow("Video", mask); if (cv::waitKey(30) == 27) { break; } } cap.release(); cv::destroyAllWindows(); return 0;
}
Enter fullscreen mode
Exit fullscreen mode
def ex2(): cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.1, 4) for (x, y, w, h) in faces: roi = frame[y:y + h, x:x + w] roi = cv2.GaussianBlur(roi, (23, 23), 30) frame[y:y + h, x:x + w] = roi cv2.imshow("gray", gray) if cv2.waitKey(30) & 0xFF == 27: break cap.release() cv2.destroyAllWindows()
Enter fullscreen mode
Exit fullscreen mode
#include <iostream>

#include <opencv2/opencv.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
 int main() { cv::VideoCapture cap(0); while(true) { cv::Mat frame; cap >> frame; cv::CascadeClassifier face_cascade; face_cascade.load("haarcascade_frontalface_default.xml"); std::vector<cv::Rect> faces; face_cascade.detectMultiScale(frame, faces, 1.1, 3, 0, cv::Size(30, 30)); for(int i = 0; i < faces.size(); i++) { cv::Rect face = faces[i]; cv::Mat faceROI = frame(face); cv::blur(faceROI, faceROI, cv::Size(30, 30)); } cv::imshow("frame", frame); if(cv::waitKey(1) == 27) { break; } } }
Enter fullscreen mode
Exit fullscreen mode

Image description

def ex3(): cap = cv2.VideoCapture(0) object_detector = cv2.createBackgroundSubtractorMOG2() last_coordinates = [] while True: ret, frame = cap.read() mask = object_detector.apply(frame) contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for contour in contours: if cv2.contourArea(contour) < 5000: continue (x, y, w, h) = cv2.boundingRect(contour) last_coordinates.append((x, y, w, h)) for i in range(1, len(last_coordinates)): cv2.line(frame, (last_coordinates[i - 1][0], last_coordinates[i - 1][1]), (last_coordinates[i][0], last_coordinates[i][1]), (0, 0, 255), 5) cv2.imshow('Video', frame) if cv2.waitKey(30) & 0xFF == 27: break cap.release() cv2.destroyAllWindows()
Enter fullscreen mode
Exit fullscreen mode
#include <iostream>

#include <opencv2/opencv.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
 int main() { cv::VideoCapture cap(0); cv::Ptr<cv::BackgroundSubtractor> object_detector = cv::createBackgroundSubtractorMOG2(); std::vector<cv::Rect> last_coordinates; while (true) { cv::Mat frame; cap >> frame; cv::Mat mask; object_detector->apply(frame, mask); std::vector<std::vector<cv::Point>> contours; std::vector<cv::Vec4i> hierarchy; cv::findContours(mask, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE); for (auto &contour : contours) { if (cv::contourArea(contour) < 5000) { continue; } cv::Rect rect = cv::boundingRect(contour); last_coordinates.push_back(rect); } for (int i = 1; i < last_coordinates.size(); i++) { cv::line(frame, cv::Point(last_coordinates[i - 1].x, last_coordinates[i - 1].y), cv::Point(last_coordinates[i].x, last_coordinates[i].y), cv::Scalar(0, 0, 255), 5); } cv::imshow("Video", frame); if (cv::waitKey(30) & 0xFF == 27) { break; } } cap.release(); cv::destroyAllWindows(); return 0;
}
Enter fullscreen mode
Exit fullscreen mode

Discover more from Coursity

Subscribe to get the latest posts sent to your email.

Leave a Comment

Your email address will not be published. Required fields are marked *

Discover more from Coursity

Subscribe now to keep reading and get access to the full archive.

Continue reading

Scroll to Top
Ios app development. Create high quality content : google loves high quality, useful, informative content.