migrate
This commit is contained in:
+62
-41
@@ -1,52 +1,73 @@
|
|||||||
# C++ objects and libs
|
# This file is used to ignore files which are generated
|
||||||
*.slo
|
# ----------------------------------------------------------------------------
|
||||||
*.lo
|
|
||||||
*.o
|
*~
|
||||||
|
*.autosave
|
||||||
*.a
|
*.a
|
||||||
*.la
|
*.core
|
||||||
*.lai
|
*.moc
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
*.orig
|
||||||
|
*.rej
|
||||||
*.so
|
*.so
|
||||||
*.so.*
|
*.so.*
|
||||||
*.dll
|
*_pch.h.cpp
|
||||||
*.dylib
|
*_resource.rc
|
||||||
|
*.qm
|
||||||
# Qt-es
|
.#*
|
||||||
object_script.*.Release
|
*.*#
|
||||||
object_script.*.Debug
|
core
|
||||||
*_plugin_import.cpp
|
!core/
|
||||||
|
tags
|
||||||
|
.DS_Store
|
||||||
|
.directory
|
||||||
|
*.debug
|
||||||
|
Makefile*
|
||||||
|
*.prl
|
||||||
|
*.app
|
||||||
|
moc_*.cpp
|
||||||
|
ui_*.h
|
||||||
|
qrc_*.cpp
|
||||||
|
Thumbs.db
|
||||||
|
*.res
|
||||||
|
*.rc
|
||||||
/.qmake.cache
|
/.qmake.cache
|
||||||
/.qmake.stash
|
/.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
|
# qtcreator generated files
|
||||||
target_wrapper.*
|
*.pro.user*
|
||||||
|
|
||||||
# QtCreator
|
# xemacs temporary files
|
||||||
*.autosave
|
*.flc
|
||||||
|
|
||||||
# QtCreator Qml
|
# Vim temporary files
|
||||||
*.qmlproject.user
|
.*.swp
|
||||||
*.qmlproject.user.*
|
|
||||||
|
|
||||||
# QtCreator CMake
|
# Visual Studio generated files
|
||||||
CMakeLists.txt.user*
|
*.ib_pdb_index
|
||||||
|
*.idb
|
||||||
|
*.ilk
|
||||||
|
*.pdb
|
||||||
|
*.sln
|
||||||
|
*.suo
|
||||||
|
*.vcproj
|
||||||
|
*vcproj.*.*.user
|
||||||
|
*.ncb
|
||||||
|
*.sdf
|
||||||
|
*.opensdf
|
||||||
|
*.vcxproj
|
||||||
|
*vcxproj.*
|
||||||
|
|
||||||
# QtCreator 4.8< compilation database
|
# MinGW generated files
|
||||||
compile_commands.json
|
*.Debug
|
||||||
|
*.Release
|
||||||
|
|
||||||
|
# Python byte code
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Binaries
|
||||||
|
# --------
|
||||||
|
*.dll
|
||||||
|
*.exe
|
||||||
|
|
||||||
# QtCreator local machine specific files for imported projects
|
|
||||||
*creator.user*
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#ifndef CMAINWINDOW_H
|
||||||
|
#define CMAINWINDOW_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
|
||||||
|
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
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>cMainWindow</class>
|
||||||
|
<widget class="QMainWindow" name="cMainWindow">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>800</width>
|
||||||
|
<height>600</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>cMainWindow</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralwidget"/>
|
||||||
|
<widget class="QMenuBar" name="menubar"/>
|
||||||
|
<widget class="QStatusBar" name="statusbar"/>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#include "cmainwindow.h"
|
||||||
|
|
||||||
|
#include "openCV.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
cMainWindow w;
|
||||||
|
w.show();
|
||||||
|
|
||||||
|
core__mat_the_basic_image_container();
|
||||||
|
|
||||||
|
return a.exec();
|
||||||
|
}
|
||||||
+102
@@ -0,0 +1,102 @@
|
|||||||
|
#include "opencv2/core.hpp"
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
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_<double>(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_<double>({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<float> 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<Point2f> 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]
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#ifndef OPENCV_H
|
||||||
|
#define OPENCV_H
|
||||||
|
|
||||||
|
|
||||||
|
void core__mat_the_basic_image_container();
|
||||||
|
|
||||||
|
|
||||||
|
#endif // OPENCV_H
|
||||||
+62
@@ -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
|
||||||
Reference in New Issue
Block a user