ホームページ >バックエンド開発 >Python チュートリアル >コンピュータービジョン技術テストのサンプル - Python / C++

コンピュータービジョン技術テストのサンプル - Python / C++

王林
王林オリジナル
2024-09-10 06:47:32903ブラウズ

Python に opencv をインストールするには

pip install opencv-python

C++ で opencv をインストールするには

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

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})

I - 動きの検出

xample of computer vison technical test - Python / c++

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()
#include <iostream>

#include <opencv2>
#include <opencv2>
#include <opencv2>
#include <opencv2>
#include <opencv2>

int main() {
    cv::VideoCapture cap(0);
    cv::Ptr<: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;
}
</:backgroundsubtractor></opencv2></opencv2></opencv2></opencv2></opencv2></iostream>

II - 顔をぼかします

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()
#include <iostream>

#include <opencv2>
#include <opencv2>
#include <opencv2>
#include <opencv2>
#include <opencv2>


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<:rect> faces;
        face_cascade.detectMultiScale(frame, faces, 1.1, 3, 0, cv::Size(30, 30));

        for(int i = 0; i 



<h2>
  
  
  III - 動きをトレースする
</h2>

<p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/172592205430642.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="xample of computer vison technical test - Python / c++"><br>
</p>

<pre class="brush:php;toolbar:false">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) 





<pre class="brush:php;toolbar:false">#include <iostream>

#include <opencv2>
#include <opencv2>
#include <opencv2>
#include <opencv2>
#include <opencv2>


int main() {
    cv::VideoCapture cap(0);
    cv::Ptr<:backgroundsubtractor> object_detector = cv::createBackgroundSubtractorMOG2();

    std::vector<:rect> last_coordinates;

    while (true) {
        cv::Mat frame;
        cap >> frame;
        cv::Mat mask;
        object_detector->apply(frame, mask);
        std::vector<:vector>> contours;
        std::vector<:vec4i> hierarchy;
        cv::findContours(mask, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE);
        for (auto &contour : contours) {
            if (cv::contourArea(contour) 




          

            
        </:vec4i></:vector></:rect></:backgroundsubtractor></opencv2></opencv2></opencv2></opencv2></opencv2></iostream>

以上がコンピュータービジョン技術テストのサンプル - Python / C++の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。