国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

VC++中使用OpenCV進(jìn)行人臉檢測

這篇具有很好參考價值的文章主要介紹了VC++中使用OpenCV進(jìn)行人臉檢測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

VC++中使用OpenCV進(jìn)行人臉檢測

opencv vc++,OpenCV,Visual C++和MFC,QT編程學(xué)習(xí),opencv,c++,人工智能
對于上面的圖像,如何使用OpenCV進(jìn)行人臉檢測呢?
使用OpenCV進(jìn)行人臉檢測十分簡單,OpenCV官網(wǎng)給了一個Python人臉檢測的示例程序,
opencv vc++,OpenCV,Visual C++和MFC,QT編程學(xué)習(xí),opencv,c++,人工智能
objectDetection.py代碼如下:

from __future__ import print_function
import cv2 as cv
import argparse

def detectAndDisplay(frame):
    frame_gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    frame_gray = cv.equalizeHist(frame_gray)

    #-- Detect faces
    faces = face_cascade.detectMultiScale(frame_gray)
    for (x,y,w,h) in faces:
        center = (x + w//2, y + h//2)
        frame = cv.ellipse(frame, center, (w//2, h//2), 0, 0, 360, (255, 0, 255), 4)

        faceROI = frame_gray[y:y+h,x:x+w]
        #-- In each face, detect eyes
        eyes = eyes_cascade.detectMultiScale(faceROI)
        for (x2,y2,w2,h2) in eyes:
            eye_center = (x + x2 + w2//2, y + y2 + h2//2)
            radius = int(round((w2 + h2)*0.25))
            frame = cv.circle(frame, eye_center, radius, (255, 0, 0 ), 4)

    cv.imshow('Capture - Face detection', frame)

parser = argparse.ArgumentParser(description='Code for Cascade Classifier tutorial.')
parser.add_argument('--face_cascade', help='Path to face cascade.', default='data/haarcascades/haarcascade_frontalface_alt.xml')
parser.add_argument('--eyes_cascade', help='Path to eyes cascade.', default='data/haarcascades/haarcascade_eye_tree_eyeglasses.xml')
parser.add_argument('--camera', help='Camera divide number.', type=int, default=0)
args = parser.parse_args()

face_cascade_name = args.face_cascade
eyes_cascade_name = args.eyes_cascade

face_cascade = cv.CascadeClassifier()
eyes_cascade = cv.CascadeClassifier()

#-- 1. Load the cascades
if not face_cascade.load(cv.samples.findFile(face_cascade_name)):
    print('--(!)Error loading face cascade')
    exit(0)
if not eyes_cascade.load(cv.samples.findFile(eyes_cascade_name)):
    print('--(!)Error loading eyes cascade')
    exit(0)

camera_device = args.camera
#-- 2. Read the video stream
cap = cv.VideoCapture(camera_device)
if not cap.isOpened:
    print('--(!)Error opening video capture')
    exit(0)

while True:
    ret, frame = cap.read()
    if frame is None:
        print('--(!) No captured frame -- Break!')
        break

    detectAndDisplay(frame)

    if cv.waitKey(10) == 27:
        break

所在目錄為D:\env_build\opencv4.9.0\opencv\sources\samples\python\tutorial_code\objectDetection\cascade_classifier\objectDetection.py

人臉識別的背景

人臉識別可以用在身份認(rèn)證,門禁等場合中,可以通過訓(xùn)練大量的人臉數(shù)據(jù)獲取人臉的特征。但是實際場景可以比較復(fù)雜,由于燈光、視角、視距、攝像頭抖動以及數(shù)字噪聲的變化,圖像細(xì)節(jié)變得不穩(wěn)定;還有戴了口罩、帽子之后對于人臉的檢測就變得更麻煩了。Haar 特征是一種用于實現(xiàn)實時人臉跟蹤的特征。每一個 Haar 特征都描述了相鄰圖像區(qū)域的對比模式。例如,邊,頂點(diǎn)和細(xì)線都能生成具有判別性的特征。

haar級聯(lián)數(shù)據(jù)獲取

在 sources 的一個文件夾 data/haarcascades。該文件夾包含了所有 OpenCV 的人臉檢測的 XML 文件,這些可用于檢測靜止圖像、視頻和攝像頭所得到圖像中的人臉。如下圖所示:
opencv vc++,OpenCV,Visual C++和MFC,QT編程學(xué)習(xí),opencv,c++,人工智能

  • 人臉檢測器(默認(rèn)):haarcascade_frontalface_default.xml
  • 人臉檢測器(快速 Harr):haarcascade_frontalface_alt2.xml
  • 人臉檢測器(側(cè)視):haarcascade_profileface.xml
  • 眼部檢測器(左眼):haarcascade_lefteye_2splits.xml
  • 眼部檢測器(右眼):haarcascade_righteye_2splits.xml
  • 身體檢測器:haarcascade_fullbody.xml
  • 上半身檢測器:haarcascade_upperbody.xml
    其中,本文中我們使用默認(rèn)的人臉檢測器xml配置文件haarcascade_frontalface_default.xml ,可以從https://github.com/murtazahassan/Learn-OpenCV-cpp-in-4-Hours/blob/main/Resources/haarcascade_frontalface_default.xml處下載

資源圖片地址

人臉資源圖片地址為:https://github.com/murtazahassan/Learn-OpenCV-cpp-in-4-Hours/blob/main/Resources/test.png

C++人臉檢測示例代碼

C++示例代碼如下:

#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/objdetect.hpp>
#include <iostream>

using namespace cv;
using namespace std;


///  Images 人臉檢測  //

int main()
{

	string path = "Resources/test.png";
	//string path = "Resources/multiFaces.jpg";
	Mat img = imread(path);

	CascadeClassifier faceCascade;	// 級聯(lián)分類器
	faceCascade.load("Resources/haarcascade_frontalface_default.xml"); // 加載訓(xùn)練好的haar人臉正臉xml配置文件
	if (faceCascade.empty()) {
		cout << "XML file not loaded" << endl;
	}

	vector<Rect> faces;	// 人臉的矩形數(shù)組
	faceCascade.detectMultiScale(img, faces, 1.1, 10);	// 檢測輸入圖像中不同大小的對象,檢測到的對象返回矩形列表形式faces

	// 針對每個檢測到的人臉矩形,在對應(yīng)位置上繪制矩形區(qū)域
	for (int i = 0; i < faces.size(); i++)
	{
		rectangle(img, faces[i].tl(), faces[i].br(), Scalar(255, 0, 255), 3);	// 在原圖上繪制人臉矩形區(qū)域,顏色為粉色,線條厚度為3像素
	}

	imshow("Image", img);
	waitKey(0);

	return 0;
}

運(yùn)行結(jié)果如下:
opencv vc++,OpenCV,Visual C++和MFC,QT編程學(xué)習(xí),opencv,c++,人工智能文章來源地址http://www.zghlxwxcb.cn/news/detail-832104.html

參考資料

  • 人臉識別-Haar級聯(lián)
  • 人臉識別-多張人臉檢測
  • LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision
  • murtazahassan/Learn-OpenCV-cpp-in-4-Hours
  • LEARN OPENCV in 3 HOURS with Python | Including 3xProjects | Computer Vision
  • Learn-OpenCV-in-3-hours
  • OpenCV官網(wǎng)
  • OpenCV-Get Started
  • OpenCV Github倉庫源代碼
  • OpenCV tutorial

到了這里,關(guān)于VC++中使用OpenCV進(jìn)行人臉檢測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Microsoft Visual C++下載,VC++下載

    Microsoft Visual C++ 2019 v14.28.29617 Microsoft Visual C++ Redistributable(系統(tǒng)運(yùn)行庫,簡稱MSVC,VB/VC)是Windows操作系統(tǒng)應(yīng)用程序的基礎(chǔ)類型庫組件。 Microsoft Visual C++運(yùn)行庫,Windows系統(tǒng)裝機(jī)必備組件,這是官方版安裝包。 Microsoft Visual C++ 2019為創(chuàng)建基于微軟 Windows 和基于 Microsoft .NET 的應(yīng)用

    2024年02月12日
    瀏覽(17)
  • 【使用OpenCV進(jìn)行視頻人臉檢測】------機(jī)器學(xué)習(xí)(附完整代碼和數(shù)據(jù)集)

    【使用OpenCV進(jìn)行視頻人臉檢測】------機(jī)器學(xué)習(xí)(附完整代碼和數(shù)據(jù)集)

    上篇文章介紹了OpenCV進(jìn)行照片人臉檢測,今天學(xué)習(xí)的是OpenCV進(jìn)行視頻人臉檢測,所有的參考博文、文獻(xiàn)、視頻、代碼都會在文末附上鏈接或文件壓縮包。 本文的目錄如下: detectMultiScale()函數(shù) 核心部分用到的同樣是detectMultiScale(),具體參數(shù)解釋見上篇博客OpenCV進(jìn)行照片人臉檢

    2023年04月08日
    瀏覽(20)
  • Windows下使用QT+OpenCV完成人臉檢測(獲取攝像頭的數(shù)據(jù)進(jìn)行檢測)

    Windows下使用QT+OpenCV完成人臉檢測(獲取攝像頭的數(shù)據(jù)進(jìn)行檢測)

    Windows版本: Win10 X64 OpenCV版本: 2.4.13.6 QT版本: 5.12 OpenCV官網(wǎng)下載地址: ???https://opencv.org??? ? ? 目前官網(wǎng)OpenCV最新的版本是4.2.0 ,Windows版本的OpenCV在3.X版本后就不帶X86的庫,只有X64的庫,如果需要X86的庫,需要自己下載源碼去重新編譯。 由于我的QT軟件在安裝時沒有安裝

    2024年01月16日
    瀏覽(27)
  • 數(shù)字圖像處理(實踐篇)二十二 使用opencv進(jìn)行人臉、眼睛、嘴的檢測

    目錄 1 xml文件 2 涉及的函數(shù) 3 實踐 使用opencv進(jìn)行人臉、眼睛、嘴的檢測。 1 xml文件 方法① 下載 ?地址:https://github.com/opencv/opencv/tree/master/data/haarcascades 點(diǎn)擊haarcascade_frontalface_default.xml文件 對著Raw右鍵,選擇“鏈接另存為”,選擇代碼所在的路徑即可,就可以下載這個文件啦

    2024年02月03日
    瀏覽(42)
  • 使用opencv和dlib庫(C++代碼)實現(xiàn)人臉活體檢測(眨眼、張嘴、搖頭檢測)

    使用opencv和dlib庫(C++代碼)實現(xiàn)人臉活體檢測(眨眼、張嘴、搖頭檢測)

    本文章使用opencv和dlib庫,使用C++代碼實現(xiàn)了人臉活體檢測,包括眨眼檢測、張嘴檢測以及搖頭檢測,可以對靜態(tài)圖片和活體進(jìn)行有效區(qū)分。 dlib是一個開源的C++機(jī)器學(xué)習(xí)庫,它提供了一系列用于圖像處理、人臉檢測、人臉識別、物體檢測、圖像標(biāo)注等功能的算法和工具。dli

    2024年04月14日
    瀏覽(114)
  • 使用C++和OpenCV進(jìn)行人臉識別,包含模型訓(xùn)練與調(diào)用過程

    人臉識別是計算機(jī)視覺領(lǐng)域的一個重要應(yīng)用,可以用于安全系統(tǒng)、人臉解鎖和人臉表情分析等方面。本教程將向您展示如何使用C++和OpenCV庫實現(xiàn)基本的人臉識別功能。我們將分為兩部分,首先是模型訓(xùn)練過程,然后是調(diào)用過程。 安裝OpenCV和C++開發(fā)環(huán)境: 在開始之前,請確保

    2024年02月09日
    瀏覽(25)
  • Microsoft微軟官方Win10 visual c++(vc++2019)運(yùn)行庫下載

    最新支持Visual C++ 可再發(fā)行程序包下載 | Microsoft Docs 本文列出了最新版本的包的下載Visual C++ 可再發(fā)行程序包鏈接。 https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads 安裝后可以解決某些軟件(如QQ)運(yùn)行時 .dll 文件報錯問題

    2024年02月16日
    瀏覽(50)
  • Win11無法運(yùn)行Visual C++ 6.0?VC6.0不兼容解決辦法

    Win11無法運(yùn)行Visual C++ 6.0?VC6.0不兼容解決辦法

    最近老是有用戶跟小編反映自己的Win11電腦無法運(yùn)行Visual C++ 6.0,不知道該如何解決?Windows 11在安裝Visual C++ 6.0后需要進(jìn)一步設(shè)置才能運(yùn)行。 配置方法: 1、更改“MSDEV.EXE”文件名 找到 Visual C++ 6.0 的安裝目錄(一般在“C:Program Files (x86)Microsoft Visual StudioCommonMSDev98Bin”

    2024年02月11日
    瀏覽(21)
  • 解決Visual C++ Redistributable安裝找不到vc_runtimeMinimum_x86.msi最簡單辦法

    解決Visual C++ Redistributable安裝找不到vc_runtimeMinimum_x86.msi最簡單辦法

    今天在安裝Fritzing的時候,遇到了需要Visual C++ Redistributable支持包,所以就動手安裝,發(fā)現(xiàn)居然不能安裝,安裝幾次居然錯誤提示所需要的安裝包*.MSI的居然名稱還不用。我也是下載了各種版本來試圖靠運(yùn)氣過關(guān),結(jié)果失敗告終。 文章出處: https://blog.csdn.net/haigear/article/detai

    2023年04月22日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包