java+opencv4.6+wechatCode

这篇博客介绍了如何在Linux环境下编译OpenCV4.6以便用于Java项目,特别是微信二维码的处理。首先,直接使用的方案被提及,推荐了一个名为WechatQrCode的资源。然后,详细阐述了自己编译OpenCV的过程,包括安装必要的依赖、安装ant和Java、下载opencv及opencv_contrib源码、配置cmake以及最终进行编译。成功编译后,将在当前目录下生成所需的依赖文件。

直接使用

参看WechatQrCode

自己编译

windows编译比较简单,就不在赘述。
主要介绍下linux编译

安装依赖
sudo yum -y install ffmpeg ffmpeg-devel
sudo yum -y install git gcc gcc-c++ cmake3 cmake-gui
sudo yum -y install qt5-qtbase-devel
sudo yum install -y python36 python36-devel python36-pip python36-numpy
sudo yum -y install gtk2-devel
sudo yum -y install gstreamer*
sudo yum -y install vlc 
sudo yum install -y libpng-devel
sudo yum install -y jasper-devel
sudo yum install -y openexr-devel
sudo yum install -y libwebp-devel
sudo yum -y install libjpeg-turbo-devel
sudo yum install -y freeglut-devel mesa-libGL mesa-libGL-devel
sudo yum -y install libtiff-devel
sudo yum -y install libdc1394-devel
sudo yum -y install tbb-devel eigen3-devel
sudo yum -y install boost boost-thread boost-devel
sudo yum -y install libv4l-devel
sudo yum -y install gstreamer-plugins-base-devel
sudo yum -y install autoconf automake mercurial pkgconfig zlib-devel libtool freetype-devel make
sudo yum install -y hdf5-devel
sudo yum install -y liblas-devel atlas-devel 
sudo yum install -y gcc-gfortran
sudo yum install -y libevent-devel lua-devel openssl-devel flex mysql-devel
sudo yum install -y xz gettext-devel
sudo yum install -y tcl
sudo yum install -y openblas-devel
sudo yum install -y tesseract tesseract-devel tesseract-osd
sudo yum install -y java-1.7.0-openjdk-devel
sudo yum install -y pylint
sudo yum install -y python-flake8
sudo yum install -y vtk-devel vtk-python vtk-qt vtk
sudo yum install -y ccache
sudo yum install -y gflags gflags-devel
sudo yum install -y glog glog-devel
sudo yum install -y libpng libpng-devel
sudo yum install -y libXaw-devel freeimage freeimage-devel zziplib-devel cppunit-devel libXt-devel libX11-devel
sudo yum install -y re2c libgnomeui-devel
sudo yum install -y gcc gcc-c++ gtk2-devel gimp gimp-devel gimp-devel-tools gimp-help-browser libjpeg-devel gstreamer-devel  libraw1394-devel  jasper-devel jasper-utils swig python nasm
sudo yum install -y g++ cmake git  gtk2 libdc1394 libv4l  swig jasper libdc1394 jasper-devel jasper-utils libgphoto2 libavc1394-devel gtk+-devel yasm libpciaccess libva-freeworld libva-intel-driver phonon-backend-gstreamer
安装ant和java

如安装可滤过

yum install ant&java
下载opencv及opencv_contrib源码

https://github.com/opencv/opencv.git
https://github.com/opencv/opencv_contrib.git

设置cmake

创建build目录
mkdir build & cd build
cmake3 -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D OPENCV_EXTRA_MODULES_PATH=/opencv/opencv/opencv_contrib-4.5.3/modules \ ## opencv_contrib-4.5.3路径 -D BUILD_EXAMPLES=ON /opencv/opencv ## makefile的路径

开始编译

make -j8
make install
编译成功后,build/lib目录下会生成相关依赖。到此就可以使用了

在Qt 5.15结合OpenCV 4.6环境下,要根据训练好的模型进行人脸匹配,你需要经历以下几个步骤: 1. **安装依赖**: - 安装Qt 5.15:从Qt官网下载并按照指引安装。 - 安装OpenCV 4.6:可以使用包管理器(如apt-get、brew或conda)或从OpenCV官网下载源码进行编译安装。 2. **加载预训练的人脸检测模型**: 使用OpenCV中的`cv::dnn::readNetFromTensorflow()`或`cv::dnn::readNetFromONNX()`函数,根据你的模型格式(TF、ONNX等)读取预训练的人脸检测模型,如Haar Cascade分类器或更复杂的深度学习模型。 3. **人脸识别**: - 首先捕获摄像头画面或加载图片,然后使用OpenCV的`CascadeClassifier.detectMultiScale()`对图像进行人脸检测。 - 对于深度学习模型,需要使用`cv::dnn::Net.forward()`进行前向传播,然后提取特征。 4. **人脸匹配**: - 如果有多个人脸,使用预训练的识别模型(如FaceNet、DeepFace等)计算每个检测到的人脸之间的相似度。 - 比较当前人脸特征和已知数据库中的特征,找到最相似的一张或多张人脸。 5. **结果展示**: - 可能会显示匹配成功的面部以及相应的信息(如ID、相似度分数)。 示例代码片段(注意这只是一个简化版的框架,实际操作中还需要错误处理和其他细节): ```cpp #include <opencv2/objdetect.hpp> #include <opencv2/dnn.hpp> // ...其他头文件 cv::Mat img = cv::imread("path_to_image"); cv::dnn::Net faceDetector = cv::dnn::readNetFromTensorflow("path_to_your_model.pb"); // 替换为实际路径 std::vector<cv::Rect> faces = faceDetector.detectMultiScale(img); for (const auto &face : faces) { cv::Mat faceROI = img(face); // 使用DNN进行特征提取 cv::Mat features = ...; // 提取特征的代码 // 匹配库中人脸数据 std::vector<cv::DMatch> matches = compareFeatures(features); // 自定义匹配函数 // 显示结果 displayMatches(img, faceROI, matches); } // 相似度比较和匹配函数 std::vector<cv::DMatch> compareFeatures(cv::Mat feature) { // 根据你的库或算法实现 // ... } void displayMatches(const cv::Mat &img, const cv::Rect &face, const std::vector<cv::DMatch> &matches) { // 显示匹配人脸及其信息 } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值