>>>一. 安装OpenCV库: 打开终端,输入以下命令安装OpenCV:
sudo apt-get updatesudo apt-get install libopencv-dev
库默认安装在了这个目录
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释
* usr/lib/x86_64-linux-gnu/libopencv_videostab.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_stereo.a/usr/lib/x86_64-linux-gnu/libopencv_stitching.a/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_videostab.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so/usr/lib/x86_64-linux-gnu/libopencv_surface_matching.a/usr/lib/x86_64-linux-gnu/libopencv_video.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_video.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_core.a/usr/lib/x86_64-linux-gnu/libopencv_dnn_superres.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_text.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so/usr/lib/x86_64-linux-gnu/libopencv_hfs.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_phase_unwrapping.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_ximgproc.so/usr/lib/x86_64-linux-gnu/libopencv_tracking.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_line_descriptor.a/usr/lib/x86_64-linux-gnu/libopencv_rgbd.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_dpm.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_structured_light.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_face.a/usr/lib/x86_64-linux-gnu/libopencv_reg.so/usr/lib/x86_64-linux-gnu/libopencv_ximgproc.a/usr/lib/x86_64-linux-gnu/libopencv_fuzzy.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_xphoto.a/usr/lib/x86_64-linux-gnu/libopencv_quality.a/usr/lib/x86_64-linux-gnu/libopencv_dpm.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_datasets.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_bioinspired.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_structured_light.so/usr/lib/x86_64-linux-gnu/libopencv_ccalib.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_highgui.a/usr/lib/x86_64-linux-gnu/libopencv_tracking.a/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_ccalib.a/usr/lib/x86_64-linux-gnu/libopencv_hdf.so/usr/lib/x86_64-linux-gnu/libopencv_stereo.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_ccalib.so/usr/lib/x86_64-linux-gnu/libopencv_videoio.so.4.2/usr/lib/x86_64-linux-gnu/cmake/opencv4/usr/lib/x86_64-linux-gnu/libopencv_bioinspired.so/usr/lib/x86_64-linux-gnu/libopencv_quality.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_hfs.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_datasets.a/usr/lib/x86_64-linux-gnu/libopencv_structured_light.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_xobjdetect.a/usr/lib/x86_64-linux-gnu/libopencv_imgproc.a/usr/lib/x86_64-linux-gnu/libopencv_superres.a/usr/lib/x86_64-linux-gnu/libopencv_features2d.a/usr/lib/x86_64-linux-gnu/libopencv_saliency.a/usr/lib/x86_64-linux-gnu/libopencv_calib3d.a/usr/lib/x86_64-linux-gnu/libopencv_dnn_superres.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_plot.so/usr/lib/x86_64-linux-gnu/libopencv_viz.a/usr/lib/x86_64-linux-gnu/libopencv_flann.a/usr/lib/x86_64-linux-gnu/libopencv_hdf.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_text.a/usr/lib/x86_64-linux-gnu/libopencv_optflow.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_aruco.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_photo.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_datasets.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_plot.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_phase_unwrapping.so/usr/lib/x86_64-linux-gnu/libopencv_bgsegm.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_tracking.so/usr/lib/x86_64-linux-gnu/libopencv_phase_unwrapping.a/usr/lib/x86_64-linux-gnu/libopencv_ximgproc.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_text.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_text.so/usr/lib/x86_64-linux-gnu/libopencv_superres.so/usr/lib/x86_64-linux-gnu/libopencv_ts.a/usr/lib/x86_64-linux-gnu/libopencv_plot.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_stitching.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_ccalib.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_features2d.so/usr/lib/x86_64-linux-gnu/libopencv_fuzzy.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_core.so/usr/lib/x86_64-linux-gnu/libopencv_dnn.a/usr/lib/x86_64-linux-gnu/libopencv_plot.a/usr/lib/x86_64-linux-gnu/libopencv_highgui.so/usr/lib/x86_64-linux-gnu/libopencv_flann.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_img_hash.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_img_hash.a/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so/usr/lib/x86_64-linux-gnu/libopencv_surface_matching.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_features2d.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_bgsegm.a/usr/lib/x86_64-linux-gnu/libopencv_img_hash.so/usr/lib/x86_64-linux-gnu/libopencv_videoio.a/usr/lib/x86_64-linux-gnu/libopencv_dnn_objdetect.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_stitching.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_img_hash.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_xobjdetect.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_xobjdetect.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_line_descriptor.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so/usr/lib/x86_64-linux-gnu/libopencv_shape.a/usr/lib/x86_64-linux-gnu/libopencv_features2d.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_fuzzy.so/usr/lib/x86_64-linux-gnu/libopencv_freetype.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_freetype.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_phase_unwrapping.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_hdf.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_rgbd.so/usr/lib/x86_64-linux-gnu/libopencv_fuzzy.a/usr/lib/x86_64-linux-gnu/libopencv_core.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_line_descriptor.so/usr/lib/x86_64-linux-gnu/libopencv_viz.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_hdf.a/usr/lib/x86_64-linux-gnu/libopencv_aruco.a/usr/lib/x86_64-linux-gnu/libopencv_shape.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_flann.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_reg.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_hfs.so/usr/lib/x86_64-linux-gnu/libopencv_rgbd.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_face.so/usr/lib/x86_64-linux-gnu/libopencv_freetype.so/usr/lib/x86_64-linux-gnu/libopencv_ml.so/usr/lib/x86_64-linux-gnu/libopencv_stitching.so/usr/lib/x86_64-linux-gnu/libopencv_core.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_dpm.a/usr/lib/x86_64-linux-gnu/libopencv_dnn_objdetect.so/usr/lib/x86_64-linux-gnu/libopencv_video.so/usr/lib/x86_64-linux-gnu/libopencv_ml.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_stereo.so/usr/lib/x86_64-linux-gnu/libopencv_viz.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_video.a/usr/lib/x86_64-linux-gnu/libopencv_freetype.a/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_ml.a/usr/lib/x86_64-linux-gnu/libopencv_stereo.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_dnn_objdetect.a/usr/lib/x86_64-linux-gnu/libopencv_superres.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_flann.so/usr/lib/x86_64-linux-gnu/libopencv_dnn.so/usr/lib/x86_64-linux-gnu/libopencv_hfs.a/usr/lib/x86_64-linux-gnu/libopencv_saliency.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_dpm.so/usr/lib/x86_64-linux-gnu/libopencv_optflow.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_saliency.so/usr/lib/x86_64-linux-gnu/libopencv_bgsegm.so/usr/lib/x86_64-linux-gnu/libopencv_superres.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_quality.so/usr/lib/x86_64-linux-gnu/libopencv_ml.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_reg.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_aruco.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_dnn_superres.a/usr/lib/x86_64-linux-gnu/libopencv_xphoto.so/usr/lib/x86_64-linux-gnu/libopencv_viz.so/usr/lib/x86_64-linux-gnu/libopencv_videostab.a/usr/lib/x86_64-linux-gnu/libopencv_structured_light.a/usr/lib/x86_64-linux-gnu/libopencv_reg.a/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.a/usr/lib/x86_64-linux-gnu/libopencv_shape.so/usr/lib/x86_64-linux-gnu/libopencv_dnn_superres.so/usr/lib/x86_64-linux-gnu/pkgconfig/opencv4.pc/usr/lib/x86_64-linux-gnu/libopencv_bioinspired.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_ximgproc.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_rgbd.a/usr/lib/x86_64-linux-gnu/libopencv_surface_matching.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_surface_matching.so/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_photo.a/usr/lib/x86_64-linux-gnu/libopencv_saliency.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_optflow.a/usr/lib/x86_64-linux-gnu/libopencv_videoio.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_dnn_objdetect.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_face.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_xobjdetect.so/usr/lib/x86_64-linux-gnu/libopencv_photo.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_aruco.so/usr/lib/x86_64-linux-gnu/libopencv_xphoto.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_photo.so/usr/lib/x86_64-linux-gnu/libopencv_bgsegm.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_line_descriptor.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_shape.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_bioinspired.a/usr/lib/x86_64-linux-gnu/libopencv_tracking.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_objdetect.a/usr/lib/x86_64-linux-gnu/libopencv_face.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_xphoto.so.4.2/usr/lib/x86_64-linux-gnu/libopencv_videoio.so/usr/lib/x86_64-linux-gnu/libopencv_datasets.so/usr/lib/x86_64-linux-gnu/libopencv_quality.so.4.2.0/usr/lib/x86_64-linux-gnu/libopencv_videostab.so/usr/lib/x86_64-linux-gnu/libopencv_optflow.so/usr/lib/jni/libopencv_java420.so
*/
头文件安装在了这个目录
/usr/include/opencv4/usr/include/opencv4/opencv2/usr/include/opencv4/opencv2/opencv_modules.hpp/usr/include/opencv4/opencv2/opencv.hpp/usr/include/boost/compute/interop/opencv.hpp/usr/include/boost/compute/interop/opencv
>>>在Qt Creator中打开项目,然后编辑
.pro
文件,添加以下内容:
QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++17# You can make your code fail to compile if it uses deprecated APIs.# In order to do so, uncomment the following line.#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \ main.cpp \ mainwindow.cppHEADERS += \ mainwindow.hFORMS += \ mainwindow.ui# Default rules for deployment.qnx: target.path = /tmp/$${TARGET}/binelse: unix:!android: target.path = /opt/$${TARGET}/bin!isEmpty(target.path): INSTALLS += target# openCVINCLUDEPATH += /usr/include/opencv4LIBS += -L/usr/lib/x86_64-linux-gnu/ -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecsRESOURCES += \ images.qrc
>>>图像变灰 演示
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACEnamespace Ui {class MainWindow;}QT_END_NAMESPACEclass MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = nullptr); ~MainWindow();private slots: void on_pushButton_clicked();private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"#include <opencv2/opencv.hpp>#include <QImage>#include <QPixmap>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); // 实现图片按标签大小适应而不失真。 QPixmap pixmap1("/home/whois/Qt_openCV_TEST/images/girl.png"); ui->label_2->setPixmap(pixmap1.scaled(ui->label_2->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); // 实现图片按标签大小适应而不失真。 QPixmap pixmap2("/home/whois/Qt_openCV_TEST/images/girl.png"); ui->label_3->setPixmap(pixmap2.scaled(ui->label_3->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));}MainWindow::~MainWindow(){ delete ui;}// opencvvoid MainWindow::on_pushButton_clicked(){ // 读取原始图像 cv::Mat img = cv::imread("/home/whois/Qt_openCV_TEST/images/girl.png"); if (img.empty()) { qDebug() << "Image not found!"; return; } // 将图像转换为灰度图 cv::Mat grayImg; cv::cvtColor(img, grayImg, cv::COLOR_BGR2GRAY); // 将灰度图像转换为QImage QImage qImg((const unsigned char*)(grayImg.data), grayImg.cols, grayImg.rows, grayImg.step, QImage::Format_Grayscale8); // 显示灰度图像到标签上 ui->label_3->setPixmap(QPixmap::fromImage(qImg.scaled(ui->label_3->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)));}
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}
>>>
>>> OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,广泛应用于多个领域。以下是一些主要的应用场景:
这些应用展示了OpenCV在各个行业的广泛适用性,通过其强大的图像处理和分析能力,推动了智能化的发展。 OpenCV被广泛应用于许多主流软件和项目中,以下是一些示例:
>>>源码获取github https://codeload.github.com/SuJieYin/open-CV/zip/refs/heads/main
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。