OpenCV人臉分析------繪制面部關鍵點函數drawFacemarks()

  • 操作系統:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 編程語言:C++11

算法描述

該函數用于在圖像上繪制面部關鍵點(facial landmarks),例如使用 FacemarkLBF, FacemarkKazemi 等算法檢測到的 68 個面部關鍵點。
它會將每個關鍵點以圓形標記繪制在輸入圖像上,方便可視化檢測結果。

參數說明

參數名類型描述
imageInputOutputArray輸入輸出圖像,通常是 BGR 彩色圖像 (CV_8UC3)。繪制后會在原圖上畫出關鍵點。
pointsInputArray關鍵點坐標集合,通常是一個 std::vectorcv::Point2f 或 cv::Mat 類型。每個元素代表一個關鍵點的 (x, y) 坐標。
colorScalar可選參數,繪制關鍵點的顏色,默認為藍色 Scalar(255, 0, 0)。如果是 BGR 圖像,可以傳入 (B, G, R) 值。

示例代碼


#include <opencv2/opencv.hpp>
#include <opencv2/face.hpp>using namespace cv;
using namespace cv::face;
using namespace std;int main() {// 加載圖像Mat img = imread("/media/dingxin/data/study/OpenCV/sources/images/Lenna.png");if (img.empty()) {cerr << "無法加載圖像!" << endl;return -1;}// 創建 Facemark 實例(如 LBF)Ptr<Facemark> facemark = FacemarkLBF::create();facemark->loadModel("lbfmodel.yaml");// 檢測人臉(使用 Haar 分類器或其它方式)CascadeClassifier face_cascade;face_cascade.load("haarcascade_frontalface_default.xml");vector<Rect> faces;Mat gray;cvtColor(img, gray, COLOR_BGR2GRAY);face_cascade.detectMultiScale(gray, faces);// 存儲關鍵點vector<vector<Point2f>> landmarks;// 檢測面部關鍵點bool success = facemark->fit(img, faces, landmarks);if (success) {for (size_t i = 0; i < landmarks.size(); i++) {// ? 繪制所有關鍵點drawFacemarks(img, landmarks[i], Scalar(0, 255, 0)); // 綠色點}imshow("Facemarks", img);waitKey(0);} else {cout << "未能檢測到面部關鍵點。" << endl;}return 0;
}

運行結果

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87974.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87974.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87974.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux內核ext4 extent:解決大文件存儲難題的關鍵

在Linux 操作系統的龐大生態中&#xff0c;文件系統猶如一座城市的基礎設施&#xff0c;支撐著數據的有序存儲與高效訪問。而 ext4 文件系統&#xff0c;作為 Linux 文件系統家族中的重要一員&#xff0c;自誕生起便憑借諸多先進特性備受矚目。其中&#xff0c;extent 機制堪稱…

reactnative頁面適配UI設計尺寸px轉dp的完美解決方案px2dp精要篇

你的 px2dp 函數基本思路是正確的&#xff0c;但可以進一步優化以確保更精確的適配。以下是改進后的完美精確方案&#xff1a; 完美精確的適配方案 import { Dimensions, PixelRatio, Platform, ScaledSize } from react-native;// 獲取屏幕尺寸&#xff08;考慮橫豎屏&#…

【世紀龍科技】汽車鈑金虛擬仿真教學實訓軟件

在汽車后市場人才緊缺的當下&#xff0c;職業院校汽車鈑金教學卻長期面臨“三難困境”&#xff1a;實訓設備昂貴且損耗快、學生實操機會稀缺、教學評價依賴主觀經驗。江蘇世紀龍科技公司以十余年汽車教育數字化積淀為基石&#xff0c;推出《汽車鈑金教學軟件》&#xff0c;通過…

Fiddler中文版抓包工具在后端API調試與Mock中的巧用

在現代開發中&#xff0c;前后端往往分屬不同小組甚至不同公司&#xff0c;接口聯調變得至關重要。尤其是在多團隊合作、后端接口尚未完成或頻繁變動的項目中&#xff0c;前端開發進度容易被阻礙。此時&#xff0c;通過靈活運用 Fiddler抓包工具&#xff0c;前端可以在后端接口…

基于 Flask框架開發的輕量級招聘網站

簡單的招聘網站示例 這是一個基于 Flask 框架開發的輕量級招聘網站示例&#xff0c;采用 Jinja2 模板引擎和 Bootstrap 前端框架&#xff0c;模仿 拉勾網 風格&#xff0c;實現了招聘平臺的核心功能。系統支持 個人用戶 和 企業用戶 兩種角色&#xff0c;個人用戶可以瀏覽職位、…

2025 年使用大模型進行軟件工程:現實檢驗

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

如何使用單例模式保證全局唯一實例(復雜版本)

/// <summary> /// 登錄管理類&#xff08;單例模式&#xff09;&#xff0c;負責用戶登錄、注銷及用戶信息管理 /// </summary> public class LoginMananger {// 用于線程同步的鎖對象static object _lockObj new object();// 單例實例&#xff08;延遲初始化&am…

瑞斯拜考研詞匯課筆記

學習視頻鏈接&#xff1a;瑞斯拜考研詞匯系統課-外刊50篇- 第一講_嗶哩嗶哩_bilibili Text 1 1.氣候危機讓普通人經歷了額外六周的高溫天氣。 The climate crisis caused the average person to experience six extra weeks of hot days. 2.碳排放是全球變暖的重要原因之一。 C…

SqlServer安裝后JDBC連接失敗——TCP/IP

朋友公司接了個項目&#xff0c;甲方BaBa用的數據庫是SqlServer 2022的Express版本&#xff0c;朋友讓我幫忙驗證下環境有沒有什么問題&#xff0c;軟件開發用的框架還是比較老的&#xff0c;spring的xml方式配置&#xff0c;用的c3p0的數據庫連接池&#xff0c;啟動項目連接池…

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘datetime’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘datetime’問題 摘要 在日常Python開發中&#xff0c;我們常常需要通過pip install來安裝第三方包&#xff0c;但有時會在PyCharm的控制臺里遇到奇怪的ModuleN…

Windows 10 2016 長期服務版

系統介紹 Windows 10 2016 長期服務版。專為需要高度穩定性和最小功能變更的環境設計。它不僅適合專業領域&#xff0c;也是辦公環境的理想選擇。 系統特點 一、極致的穩定性 精簡的系統組件&#xff1a;移除許多現代應用&#xff0c;只保留基礎功能。 無強制功能更新&…

基于springboot的文件上傳系統:重新定義大文件傳輸的可靠性邊界

一、文件分塊上傳解析1、為什么傳統文件上傳已經無法滿足現代需求&#xff1f;在云原生時代&#xff0c;文件上傳不再是簡單的"選擇文件-點擊上傳"的過程。隨著視頻、設計圖、數據集等大文件的普及&#xff0c;傳統的單文件上傳方式面臨著諸多挑戰&#xff1a;網絡不…

系統學習Python——并發模型和異步編程:進程、線程和GIL

分類目錄&#xff1a;《系統學習Python》總目錄 在文章《并發模型和異步編程&#xff1a;基礎知識》我們簡單介紹了Python中的進程、線程和協程。本文就著重介紹Python中的進程、線程和GIL的關系。 Python解釋器的每個實例都是一個進程。使用multiprocessing或concurrent.futu…

【playwright篇】教程(十七)[html元素知識]

1 html中&#xff0c;button元素中的aria-describedby"tooltip-r1k"屬性&#xff0c;主要用來做什么&#xff1f;在 HTML 中&#xff0c;button 元素中的 aria-describedby"tooltip-r1k" 屬性主要用于提升網頁的可訪問性&#xff08;Accessibility&#xf…

Python: 正則表達式

正則表達式是處理文本數據的強大工具&#xff0c;Python通過re模塊提供了完整的正則表達式功能。本文將詳細介紹Python正則表達式的使用方法&#xff0c;包括基礎語法、高級技巧和re模塊API的詳細解析。一、正則表達式基礎1.1 什么是正則表達式正則表達式(Regular Expression)是…

pytest合并allure報告解決方案

背景 在執行自動化測試的過程中&#xff0c;為了實現自動化的高通過率&#xff0c;可能會反復的重試&#xff0c;直至大多數甚至全部用例執行通過&#xff0c;以此來需要人為分析的用例量&#xff0c;減少人力投入&#xff0c;提高執行效率&#xff1b; 在用例少或者資源消耗小…

Pr插件圖文安裝教程

Pr插件圖文安裝教程 Adobe Premiere Pro&#xff0c;簡稱Pr&#xff0c;是由Adobe公司開發的一款視頻編輯軟件。Adobe Premiere有較好的兼容性&#xff0c;且可以與Adobe公司推出的其他軟件相互協作。這款軟件廣泛應用于廣告制作和電視節目制作中&#xff0c;是視頻編輯愛好者…

[netty5: HttpObjectEncoder HttpObjectDecoder]-源碼解析

在閱讀該篇文章之前&#xff0c;推薦先閱讀以下內容&#xff1a; [netty5: HttpObject]-源碼解析[netty5: MessageToMessageCodec & MessageToMessageEncoder & MessageToMessageDecoder]-源碼分析[netty5: ByteToMessageCodec & MessageToByteEncoder & Byte…

uniapp的navigator跳轉功能

接下來&#xff0c;我將圍繞一個常見的電商小程序來構建一系列連貫的使用場景。在這個過程中&#xff0c;我們將把 <navigator> 組件的所有關鍵屬性和方法都串聯起來&#xff0c;并詳細解釋它們在每個環節所扮演的角色和作用。 核心場景&#xff1a;構建一個電商小程序的…

v-for的用法及案例

目錄 一.v-for的用法 1.舉例1 2.舉例2 二.購物車案例 1.代碼 2.存在的問題&#xff1a;復選框錯位 3.解決方案&#xff1a; 賦值給key屬性一個唯一的值 一.v-for的用法 1.舉例1 <template><view><view v-for"(item,index) in 10" :key"…