Linux下QT配合OpenCV完成图像处理(实现基本的人脸检测)

一、环境概述

在虚拟机上运行的Ubuntu 18.04 64位操作系统搭配了OpenCV 3.4.9和QT 5.12版本。关于在Ubuntu上编译OpenCV的详细步骤,请参考链接:https://www.php.cn/link/1c1f1beef683946794edf22079849283。

二、创建QT工程并集成OpenCV库

以下提供了一个简单的示例,利用OpenCV内置的分类器对图像进行人脸检测并标记。

OpenCV源码中的人脸检测分类器位于:opencv-3.4.9/data/haarcascades_cuda/haarcascade_frontalface_alt2.xml。

xxx.pro项目文件如下:

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11

DEFINES += QT_DEPRECATED_WARNINGS

美图AI开放平台
美图AI开放平台

美图推出的AI人脸图像处理平台

美图AI开放平台 53
查看详情 美图AI开放平台

SOURCES += main.cpp widget.cpp

HEADERS += widget.h

FORMS += widget.ui

qnx: target.path = /tmp/$${TARGET}/binelse: unix:!android: target.path = /opt/$${TARGET}/bin!isEmpty(target.path): INSTALLS += target

linux {INCLUDEPATH += /home/wbyq/work_pc/opencv-3.4.9/_install/install/include /home/wbyq/work_pc/opencv-3.4.9/_install/install/include/opencv /home/wbyq/work_pc/opencv-3.4.9/_install/install/include/opencv2

LIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_calib3d.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_core.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_dnn.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_features2d.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_flann.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_highgui.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_imgcodecs.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_imgproc.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_ml.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_objdetect.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_photo.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_shape.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_stitching.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_superres.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_videoio.soLIBS += /home/wbyq/work_pc/opencv-3.4.9/_install/install/lib/libopencv_video.so

}

widget.cpp文件内容如下:

#include "widget.h"

include "ui_widget.h"

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget){ui->setupUi(this);opencv_face();}

Widget::~Widget(){delete ui;}

define source_xml_addr "/home/wbyq/work_pc/opencv-3.4.9/data/haarcascades_cuda/haarcascade_frontalface_alt2.xml"

define source_pix_addr "/mnt/hgfs/linux-share-dir/1.jpg"

void Widget::opencv_face(){static CvMemStorage storage = 0;static CvHaarClassifierCascade cascade = 0;fprintf( stderr, "start------------------------------>1 n" );const char cascade_name = source_xml_addr;cascade = (CvHaarClassifierCascade)cvLoad( cascade_name, 0, 0, 0 );if( !cascade ){fprintf( stderr, "ERROR: Could not load classifier cascaden" );return ;}storage = cvCreateMemStorage(0);const char filename = source_pix_addr;IplImage img = cvLoadImage( filename, 1 );if(img == nullptr ){fprintf( stderr, "jpg load error! n" );return;}fprintf( stderr, "start------------------------------>2 n" );double scale = 1.2;static CvScalar colors[] = {{{0,0,255}},{{0,128,255}},{{0,255,255}},{{0,255,0}},{{255,128,0}},{{255,255,0}},{{255,0,0}},{{255,0,255}}};IplImage gray = cvCreateImage(cvSize(img->width,img->height),8,1);IplImage small_img = cvCreateImage(cvSize(cvRound(img->width/scale),cvRound(img->height/scale)),8,1);cvCvtColor(img,gray, CV_BGR2GRAY);cvResize(gray, small_img, CV_INTER_LINEAR);cvEqualizeHist(small_img,small_img);cvClearMemStorage(storage);double t = (double)cvGetTickCount();CvSeq objects = cvHaarDetectObjects(small_img,cascade,storage,1.1,2,0,cvSize(30,30));t = (double)cvGetTickCount() - t;fprintf( stderr, "start------------------------------>3 n" );for(int i=0; i total; ++i){CvRect r = (CvRect)cvGetSeqElem(objects,i);cvRectangle(img, cvPoint(r->xscale,r->yscale), cvPoint((r->x+r->width)scale,(r->y+r->height)scale), colors[i%8]);}fprintf( stderr, "start------------------------------>4 n" );for( int i = 0; i total; i++ ){CvRect r = (CvRect)cvGetSeqElem( objects, i );CvPoint center;int radius;center.x = cvRound((r->x + r->width0.5)scale);center.y = cvRound((r->y + r->height0.5)scale);radius = cvRound((r->width + r->height)0.25*scale);cvCircle( img, center, radius, colors[i%8], 3, 8, 0 );}show_face(img);cvReleaseImage(&gray);cvReleaseImage(&small_img);cvReleaseImage( &img );}

void Widget::show_face(IplImage img){uchar imgData = (uchar *)img->imageData;QImage my_image(imgData,img->width,img->height,QImage::Format_RGB888);my_image = my_image.rgbSwapped();QPixmap my_pix;my_pix.convertFromImage(my_image);ui->label_display_face->setPixmap(my_pix);}

widget.h文件内容如下:

#ifndef WIDGET_H

define WIDGET_H

include

include

include

include

QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACE

class Widget : public QWidget{Q_OBJECT

public:Widget(QWidget parent = nullptr);~Widget();void opencv_face();void show_face(IplImage img);

private:Ui::Widget *ui;};

endif // WIDGET_H

运行上述代码后,人脸检测结果展示如下:

Linux下QT配合OpenCV完成图像处理(实现基本的人脸检测)

以上就是Linux下QT配合OpenCV完成图像处理(实现基本的人脸检测)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/34582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月4日 16:59:23
下一篇 2025年11月4日 17:03:36

相关推荐

  • Doge价格预测2025:它可以镜像2021牛的运行吗

    x的加密技术分析师tarder tardigrade分析了对历史价格行动的总结价格的分析,这表明有可能发生重大上升趋势。 技术分析师Trader Tardigrade分享了对Doge价格的分析,并比较了历史价格行动,这表明可能会产生重大上升趋势。分析师强调了一种狗蛋白图表模式,该图案与2018年的圆…

    2025年12月8日
    000
  • 随着加密货币市场提供多种信号,许多人将注意力转向新项目

    uniswap正在以发展的看涨模式获得动力,促使交易者密切监视阻力水平。同时,xrp继续面对压力 当交易者消化最近的价格行动时,加密市场表现出混杂的信号,并预计下一步行动。许多人将注意力转向提供真正潜力和早期访问的新项目。 UNISWAP(UNI)正在通过图表上形成的教科书技术模式获得动力。图表结构…

    2025年12月8日
    000
  • 阻止(bdag):预售策略,而无需惩罚

    当投资者寻找加密货币的下一个大机会时,一项策略在2025年继续占据主导地位:早期进入有希望的项目。 在加密投资的动态景观中,一项策略一直保持不变:早期进入有前途的项目。尽管预售市场对寻求资金的新代币并不陌生,但并非每个项目都为未来提供实质性的激励措施或明确的愿景。 但是,在2025年,通过其侵略性的…

    2025年12月8日
    000
  • TRX价格违反了比特币蘸酱,TRON网络方法的每日活动地址300万

    在比特币跌至102,000美元以下之后,这种看涨的势头违背了更广泛的市场抛售。 TRX是TRON网络上的本地加密货币,在周四的美国交易会中下降了2.3%。尽管比特币低于102,000美元的水平,但这种看涨的势头仍在市场上抛售。 此外,随着主动地址和看涨图表模式的稳定上升,TRX价格继续为上行突破做准…

    2025年12月8日
    000
  • Qubetics即将结束最后的公开销售

    机会不会持续更长的时间。只有1000万美元的tics代币,以0.3370美元的锁定价格保留 Qubetics即将结束最终的公开销售,机会不会持续更长的时间。只有1000万美元的TICS代币仍以0.3370美元的锁定价格保留,如果令牌清单为0.40美元,买家将获得即时的20%回报。 该项目最近将其总供…

    2025年12月8日
    000
  • Flopypypepe(FPPE)爆炸性预信号下一个加密热潮

    虽然炒作后的发射后激增有一些分析师发出警报,但floppypepe(fppe)却以其最新的下巴可闻到的30,333%的潜力悄悄地震撼了人们。 本文是在AI的帮助下撰写的。 在其最近的空投后,超流动性(Hype)令牌令人难以置信的激增,在其社区中引起了兴奋。但是,分析师现在正在警告投资者有关超级流动性…

    2025年12月8日
    000
  • Web3和AI中的Coindesk顶级女性

    由coindesk。 2023年4月18日上午1:13更新了pdt。 乍一看,将Web3和AI投入标题似乎是一个流行词汤的一个糟糕例子,这是媒体公司试图通过使用当天最搜索的单词来对待算法(和您的注意力)的实践。但是,Coindesk一直在遵循应用程序的缓慢集成,该应用程序跟踪了公共区块链和能够理解该…

    2025年12月8日
    000
  • APT矿工:使您的加密资产真正“移动”的新途径

    最近,随着加密货币市场的不确定性不断增加,许多持有sol和xrp的投资者已经开始降低其交易速度。 最近,随着加密货币市场的不确定性不断增加,许多持有sol和xrp的投资者已经开始降低其交易速度。尽管频繁的买卖可能会带来收入,但伴随的压力和风险也令人筋疲力尽。相比之下,正在逐渐接受一种更安静,更低的干…

    2025年12月8日
    000
  • Dogecoin(Doge/USD)创建看跌旗模式,可能会下跌20%至$ 0.14952

    在向下移动强劲后出现看跌旗图案,然后在上升通道内进行短暂的整合,通常标志着下降趋势的延续。 Dogecoin(Doge / USD)的相对强度指数(RSI)在2025年6月5日星期一在4小时图表上读取了38.82,其中14.period RSI移动平均线为43.67。 RSI是一种衡量价格变动的速度…

    2025年12月8日
    000
  • 由于德意志银行确认MICA将提高价格,因此对加密货币领域的乐观

    德意志银行的最新声明使加密货币部门的新兴乐观情绪,特别是对于xrp。在一份详细的研究报告中,德意志银行证实了该空间中许多人长期以来相信的:更清晰的监管框架,例如mica,将提高加密货币价格。 德意志银行的最新声明使加密货币部门的新兴乐观情绪,特别是对于XRP。 在一份详细的研究报告中,德意志银行证实…

    2025年12月8日
    000
  • 2025-W $ 50未流通的美国金鹰

    今天,美国东部时间中午,美国造币厂将发布2025-w $ 50的未流通的美国黄金鹰进行公开销售。 美国造币厂将于7月24日(星期四)美国东部时间中午发布2025-W $ 50未流通的美国金鹰进行公开销售。 在造币厂的西点设施中,硬币由1.000盎司的22克拉黄金组成,有限的铸币有限为7,500。 2…

    2025年12月8日
    000
  • 狗狗(Doge)价格可以上涨多高?该图表提供了线索

    dogecoin图表看到了在本周期中形成新的历史最高高位的可能性。经过几个月的缓慢移动,doge meme硬币开始显示出可能为另一个大集会做准备的迹象。 Dogecoin(Doge)价格图提供了一些可能在本周期中形成新的历史最高高的可能性。经过几个月的缓慢移动,模因硬币开始显示出来为另一个大集会做准…

    2025年12月8日
    000
  • 当投资者寻找下一个大赢家时,市场专家发现了三个隐藏的山寨币

    输出:当投资者寻找下一个大赢家时,市场专家发现了三个隐藏的山寨币 – floppypepe(fppe),kaspa(kas)和hyproliquid(hype) – 正在准备 当投资者寻找下一个加密货币爆炸时,市场专家一直在关注三个隐藏的山寨币(FLOPYPEPE(FPPE)…

    2025年12月8日
    000
  • Cudis通过合并人工智能,区块链和生物识别设备来彻底改变数字健康

    cudis总部位于洛杉矶,通过合并人工智能,区块链和生物识别设备来彻底改变数字健康。 位于洛杉矶的公司Cudis合并了人工智能,区块链和生物识别设备,正在使用加密奖励模型彻底改变数字健康。在新的系统中,身体健康成为一种有价值的数字资产,转移了Web3集成的范式。 整合AI健康教练和生物识别设备 这项…

    2025年12月8日
    000
  • 比特币(BTC)价格,以太坊(ETH)市值,加密货币新闻

    加密货币市场在6月4日(星期三)经历了较小的收益,比特币交易约为105501美元 加密货币市场在6月4日(星期三)经历了较小的收益,比特币的交易约为105,501美元,反映了过去24小时的增长不到2%。比特币占领了63.1%的主要市场,继续担任领导地位。 同时,Ether的价格上涨,交易约为2,62…

    2025年12月8日
    000
  • 当市场寻找下一个突破时,模因硬币反弹

    fartcoin在短短两周内飙升了近90%,bonk的赛季稳定30%。模因硬币中这种新的动力使交易者想起了市场的发展速度。 模因硬币再次飙升,两周内,Fartcoin上涨了近90%,Bonk享有30%的集会。在模因硬币中的这种新势头使交易者想起了市场的发展速度。 模因又又回来了,寻找下一个低价宝石具…

    2025年12月8日
    000
  • Coinbase在其基本以太坊第2层网络上启动了两个新包装的令牌CBXRP和CBDOGE

    coinbase已在其2层网络称为基础上推出了两个新包装的代币,cbxrp和cbdoge。该版本是安静的预览 Coinbase已在其2层网络称为基础上推出了两个新包装的代币,CBXRP和CBDOGE。该版本是在上个月进行的安静预览之后,现在为XRP和Dogecoin提供了流行的资产,可以进入快速增长…

    2025年12月8日
    000
  • 在首席部长主席下举行的第一次核心委员会会议,涉及为期一年的Bhupen Hazarika博士的一年庆典

    州政府观察布本·哈扎里卡(bhupen hazarika)的出生百年纪念作为公开庆祝活动:cm 核心委员会的第一次会议纪念Bharat Ratna Xudhakantha Bhupen Hazarika博士的出生一百周年,周三在Lok Sewa Bhawan举行,首席部长Himanta Biswa …

    2025年12月8日
    000
  • 拉格朗日的本地令牌,$ la,跃升170%

    lagrange的本地令牌$ la,在过去24小时内跃升了170%,在周四达到1.43美元。它的市场价值上升到近2.77亿美元 拉格朗日的本地代币价格在过去24小时内飙升了170%,在周四达到1.43美元。它的市场价值上升到近2.77亿美元,而交易活动爆炸,数量飙升了66870%,至4.227亿美元…

    2025年12月8日
    000
  • 引入机构投资者的新加密货币交换平台Kraken Prime

    kraken是世界领先的加密货币交流之一,它推出了一项名为kraken prime的新服务。该平台是专门为机构投资者创建的 机构对加入数字资产市场的兴趣越来越高。随着立法的最终确定并建立了良好的基础设施,这些机构正在寻找值得信赖的合作伙伴。交易所必须提供最佳的绩效,安全性和支持,而Kraken(全球…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信