From 8b2f136cf23ee4966c484922f59e0b95e2673a67 Mon Sep 17 00:00:00 2001 From: Herwig Birke Date: Tue, 28 Mar 2023 09:43:35 +0200 Subject: [PATCH] migrate --- .gitignore | 103 +++++++++++++++++++++++++++++------------------- cmainwindow.cpp | 15 +++++++ cmainwindow.h | 21 ++++++++++ cmainwindow.ui | 22 +++++++++++ main.cpp | 16 ++++++++ openCV.cpp | 102 +++++++++++++++++++++++++++++++++++++++++++++++ openCV.h | 8 ++++ openCV.pro | 62 +++++++++++++++++++++++++++++ 8 files changed, 308 insertions(+), 41 deletions(-) create mode 100644 cmainwindow.cpp create mode 100644 cmainwindow.h create mode 100644 cmainwindow.ui create mode 100644 main.cpp create mode 100644 openCV.cpp create mode 100644 openCV.h create mode 100644 openCV.pro diff --git a/.gitignore b/.gitignore index f147edf..fab7372 100644 --- a/.gitignore +++ b/.gitignore @@ -1,52 +1,73 @@ -# C++ objects and libs -*.slo -*.lo -*.o +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave *.a -*.la -*.lai +*.core +*.moc +*.o +*.obj +*.orig +*.rej *.so *.so.* -*.dll -*.dylib - -# Qt-es -object_script.*.Release -object_script.*.Debug -*_plugin_import.cpp +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc /.qmake.cache /.qmake.stash -*.pro.user -*.pro.user.* -*.qbs.user -*.qbs.user.* -*.moc -moc_*.cpp -moc_*.h -qrc_*.cpp -ui_*.h -*.qmlc -*.jsc -Makefile* -*build-* -*.qm -*.prl -# Qt unit tests -target_wrapper.* +# qtcreator generated files +*.pro.user* -# QtCreator -*.autosave +# xemacs temporary files +*.flc -# QtCreator Qml -*.qmlproject.user -*.qmlproject.user.* +# Vim temporary files +.*.swp -# QtCreator CMake -CMakeLists.txt.user* +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* -# QtCreator 4.8< compilation database -compile_commands.json +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe -# QtCreator local machine specific files for imported projects -*creator.user* diff --git a/cmainwindow.cpp b/cmainwindow.cpp new file mode 100644 index 0000000..99eb277 --- /dev/null +++ b/cmainwindow.cpp @@ -0,0 +1,15 @@ +#include "cmainwindow.h" +#include "ui_cmainwindow.h" + +cMainWindow::cMainWindow(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::cMainWindow) +{ + ui->setupUi(this); +} + +cMainWindow::~cMainWindow() +{ + delete ui; +} + diff --git a/cmainwindow.h b/cmainwindow.h new file mode 100644 index 0000000..65f0642 --- /dev/null +++ b/cmainwindow.h @@ -0,0 +1,21 @@ +#ifndef CMAINWINDOW_H +#define CMAINWINDOW_H + +#include + +QT_BEGIN_NAMESPACE +namespace Ui { class cMainWindow; } +QT_END_NAMESPACE + +class cMainWindow : public QMainWindow +{ + Q_OBJECT + +public: + cMainWindow(QWidget *parent = nullptr); + ~cMainWindow(); + +private: + Ui::cMainWindow *ui; +}; +#endif // CMAINWINDOW_H diff --git a/cmainwindow.ui b/cmainwindow.ui new file mode 100644 index 0000000..7dddbe4 --- /dev/null +++ b/cmainwindow.ui @@ -0,0 +1,22 @@ + + + cMainWindow + + + + 0 + 0 + 800 + 600 + + + + cMainWindow + + + + + + + + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..b4d99f3 --- /dev/null +++ b/main.cpp @@ -0,0 +1,16 @@ +#include "cmainwindow.h" + +#include "openCV.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + cMainWindow w; + w.show(); + + core__mat_the_basic_image_container(); + + return a.exec(); +} diff --git a/openCV.cpp b/openCV.cpp new file mode 100644 index 0000000..c3de655 --- /dev/null +++ b/openCV.cpp @@ -0,0 +1,102 @@ +#include "opencv2/core.hpp" + +#include + +using namespace cv; + + +void core__mat_the_basic_image_container() +{ + QTextStream cout(stdout); + + Mat M(2,2, CV_8UC3, Scalar(0,0,255)); +// qDebug() << "M = " << endl << " " << M << endl << endl; + //! [constructor] + + // create by using the create function() + //! [create] + M.create(4,4, CV_8UC(2)); +// qDebug() << "M = "<< endl << " " << M << endl << endl; + //! [create] + + // create multidimensional matrices + //! [init] + int sz[3] = {2,2,2}; + Mat L(3,sz, CV_8UC(1), Scalar::all(0)); + //! [init] + + // Cannot print via operator << + + // Create using MATLAB style eye, ones or zero matrix + //! [matlab] + Mat E = Mat::eye(4, 4, CV_64F); +// qDebug() << "E = " << endl << " " << E << endl << endl; + Mat O = Mat::ones(2, 2, CV_32F); +// qDebug() << "O = " << endl << " " << O << endl << endl; + Mat Z = Mat::zeros(3,3, CV_8UC1); +// qDebug() << "Z = " << endl << " " << Z << endl << endl; + //! [matlab] + + // create a 3x3 double-precision identity matrix + //! [comma] + Mat C = (Mat_(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0); +// qDebug() << "C = " << endl << " " << C << endl << endl; + //! [comma] + // do the same with initializer_list +#ifdef CV_CXX11 + //! [list] + C = (Mat_({0, -1, 0, -1, 5, -1, 0, -1, 0})).reshape(3); +// qDebug() << "C = " << endl << " " << C << endl << endl; + //! [list] +#endif + //! [clone] + Mat RowClone = C.row(1).clone(); +// qDebug() << "RowClone = " << endl << " " << RowClone << endl << endl; + //! [clone] + + // Fill a matrix with random values + //! [random] + Mat R = Mat(3, 2, CV_8UC3); + randu(R, Scalar::all(0), Scalar::all(255)); + //! [random] + + // Demonstrate the output formatting options + //! [out-default] +// qDebug() << "R (default) = " << endl << R << endl << endl; + //! [out-default] + //! [out-python] + qDebug() << "R (python) = " << endl << format(R, Formatter::FMT_PYTHON) << endl << endl; + //! [out-python] + //! [out-numpy] + qDebug() << "R (numpy) = " << endl << format(R, Formatter::FMT_NUMPY ) << endl << endl; + //! [out-numpy] + //! [out-csv] + qDebug() << "R (csv) = " << endl << format(R, Formatter::FMT_CSV ) << endl << endl; + //! [out-csv] + //! [out-c] + qDebug() << "R (c) = " << endl << format(R, Formatter::FMT_C ) << endl << endl; + //! [out-c] + + //! [out-point2] + Point2f P(5, 1); +// qDebug() << "Point (2D) = " << P << endl << endl; + //! [out-point2] + + //! [out-point3] + Point3f P3f(2, 6, 7); +// qDebug() << "Point (3D) = " << P3f << endl << endl; + //! [out-point3] + + //! [out-vector] + std::vector v; + v.push_back( (float)CV_PI); v.push_back(2); v.push_back(3.01f); +// qDebug() << "Vector of floats via Mat = " << Mat(v) << endl << endl; + //! [out-vector] + + //! [out-vector-points] + std::vector vPoints(20); + for (size_t i = 0; i < vPoints.size(); ++i) + vPoints[i] = Point2f((float)(i * 5), (float)(i % 7)); +// qDebug() << "A vector of 2D Points = " << vPoints << endl << endl; + //! [out-vector-points] +} diff --git a/openCV.h b/openCV.h new file mode 100644 index 0000000..53f1ed0 --- /dev/null +++ b/openCV.h @@ -0,0 +1,8 @@ +#ifndef OPENCV_H +#define OPENCV_H + + +void core__mat_the_basic_image_container(); + + +#endif // OPENCV_H diff --git a/openCV.pro b/openCV.pro new file mode 100644 index 0000000..db2c028 --- /dev/null +++ b/openCV.pro @@ -0,0 +1,62 @@ +VERSION = 0.0.1.0 +QMAKE_TARGET_COMPANY = WIN-DESIGN +QMAKE_TARGET_PRODUCT = openCV +QMAKE_TARGET_DESCRIPTION = openCV +QMAKE_TARGET_COPYRIGHT = (c) 2020 WIN-DESIGN + +QT += core gui sql multimedia concurrent +qtHaveModule(printsupport): QT += printsupport + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +CONFIG += c++11 + +win32-msvc* { + contains(QT_ARCH, i386) { + message("msvc 32-bit") + } else { + message("msvc 64-bit") + } +} + +win32-g++ { + message("mingw") + INCLUDEPATH += C:\dev\3rdParty\exiv2\include C:\dev\3rdParty\libraw C:\dev\3rdParty\libjpeg\include C:\dev\3rdParty\opencv\include dng + LIBS += -LC:\dev\3rdParty\exiv2\lib -lexiv2.dll -LC:\dev\3rdParty\libraw\lib -LC:\dev\3rdParty\opencv\x64\mingw\lib -lraw -lws2_32 -lz -lopencv_core412.dll -lopencv_imgproc412.dll +} + +unix { + message("*nix") + LIBS += -lraw -lexiv2 +} + +QMAKE_CXXFLAGS += -DLIBRAW_NODLL -DLIBRAW_NOTHREADS + +# The following define makes your compiler emit warnings if you use +# any Qt feature that has been marked deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS +DEFINES += APP_VERSION=\\\"$$VERSION\\\" + +# You can also make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + main.cpp \ + cmainwindow.cpp \ + openCV.cpp + +HEADERS += \ + cmainwindow.h \ + openCV.h + +FORMS += \ + cmainwindow.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target