Migrate to Qt

This commit is contained in:
Andrey Tkachenko 2014-07-11 20:35:48 +04:00
parent c7be57824a
commit 772bf4e9ae
33 changed files with 1908 additions and 562 deletions

35
CSV.pro Normal file
View File

@ -0,0 +1,35 @@
#-------------------------------------------------
#
# Project created by QtCreator 2014-07-10T12:35:18
#
#-------------------------------------------------
QT += core qml
TEMPLATE = app
TARGET = CSV
CONFIG += c++11
CONFIG -= console
SOURCES += main.cpp \
svimage.cpp \
svworker.cpp \
svprocessor.cpp \
svkernelv1.cpp \
svkernelv2.cpp \
svimageprovider.cpp
HEADERS += \
svimage.h \
svworker.h \
svprocessor.h \
svabstractkernel.h \
svkernelv1.h \
svkernelv2.h \
svimageprovider.h
RESOURCES += \
resource.qrc
OTHER_FILES += \
Main.qml

260
CSV.pro.user Normal file
View File

@ -0,0 +1,260 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.0.1, 2014-07-11T19:30:40. -->
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap"/>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{7246c6ab-7a87-4118-a487-ab344a31d36b}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/andrey/workspace/Qt/build-CSV-Desktop-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/andrey/workspace/Qt/build-CSV-Desktop-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CSV</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/andrey/workspace/Qt/CSV/CSV.pro</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">CSV.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
<value type="QByteArray">{35059b80-6449-4cca-8333-a4525005f807}</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">15</value>
</data>
</qtcreator>

157
Main.qml Normal file
View File

@ -0,0 +1,157 @@
import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 1.1
Window {
id: mainWindow
visible: true
width: 800
height: 600
Item {
id: leftColumn
width: 200
anchors.bottom: parent.bottom
anchors.top: parent.top
anchors.right: rightColumn.left
anchors.left: parent.left
Component {
id: slider
Item {
property alias title: sliderTitle.text
property alias from: sliderSlider.minimumValue
property alias to: sliderSlider.maximumValue
property alias step: sliderSlider.stepSize
property string name: ''
height: 50
Text {
id: sliderTitle
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.leftMargin: 15
anchors.rightMargin: 10
anchors.topMargin: 10
text: ""
}
Text {
id: sliderValue
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: sliderSlider.top
text: sliderSlider.value
}
Slider {
id: sliderSlider
anchors.left: parent.left
anchors.bottom: parent.bottom
anchors.right: parent.right
anchors.leftMargin: 10
anchors.rightMargin: 10
stepSize: 1
}
}
}
Column {
anchors.bottom: renderButton.top
anchors.top: parent.top
anchors.right: parent.right
anchors.left: parent.left
Loader {
id: windowSize
sourceComponent: slider
anchors.left: parent.left
anchors.right: parent.right
onLoaded: {
windowSize.item.title = "Window Size"
windowSize.item.from = 0;
windowSize.item.to = 10;
windowSize.item.step = 1;
}
}
Loader {
id: matchSize
sourceComponent: slider
anchors.left: parent.left
anchors.right: parent.right
onLoaded: {
matchSize.item.title = "Match Size"
matchSize.item.from = 0;
matchSize.item.to = 10;
matchSize.item.step = 1;
}
}
Loader {
id: errorLevel
sourceComponent: slider
anchors.left: parent.left
anchors.right: parent.right
onLoaded: {
errorLevel.item.title = "Error Level"
errorLevel.item.from = 0;
errorLevel.item.to = 10;
errorLevel.item.step = 1;
}
}
}
Button {
id: renderButton
//anchors.bottom: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
anchors.bottomMargin: 10
Text {
anchors.centerIn: parent
text: "Render"
}
}
}
Item {
id: rightColumn
anchors.bottom: parent.bottom
anchors.top: parent.top
anchors.right: parent.right
anchors.left: leftColumn.right
TabView {
anchors.fill: parent
Tab {
id: imageView
title: "Image View"
Item {
Flickable {
anchors.fill: parent
contentWidth: image.width
contentHeight: image.height
interactive: true
anchors.margins: 2
clip: true
Item {
Image {
id: image
source: "img/left4.png"
smooth: false
}
}
}
}
}
Tab {
id: pclView
title: "PCL View"
}
}
}
}

874
Makefile Normal file
View File

@ -0,0 +1,874 @@
#############################################################################
# Makefile for building: CSV
# Generated by qmake (3.0) (Qt 5.2.1)
# Project: CSV.pro
# Template: app
# Command: /usr/lib/i386-linux-gnu/qt5/bin/qmake -o Makefile CSV.pro
#############################################################################
MAKEFILE = Makefile
####### Compiler, tools and options
CC = gcc
CXX = g++
DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB
CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT -fPIE $(DEFINES)
CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT -fPIE $(DEFINES)
INCPATH = -I/usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++ -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I.
LINK = g++
LFLAGS = -Wl,-O1
LIBS = $(SUBLIBS) -lQt5Gui -L/usr/lib/i386-linux-gnu -lQt5Core -lGL -lpthread
AR = ar cqs
RANLIB =
QMAKE = /usr/lib/i386-linux-gnu/qt5/bin/qmake
TAR = tar -cf
COMPRESS = gzip -9f
COPY = cp -f
SED = sed
COPY_FILE = cp -f
COPY_DIR = cp -f -R
STRIP = strip
INSTALL_FILE = install -m 644 -p
INSTALL_DIR = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE = rm -f
SYMLINK = ln -f -s
DEL_DIR = rmdir
MOVE = mv -f
CHK_DIR_EXISTS= test -d
MKDIR = mkdir -p
####### Output directory
OBJECTS_DIR = ./
####### Files
SOURCES = main.cpp \
svimage.cpp \
svmultithreadprocessor.cpp \
svprocessorv1.cpp \
svprocessorv2.cpp moc_svmultithreadprocessor.cpp \
moc_svprocessorv1.cpp \
moc_svprocessorv2.cpp
OBJECTS = main.o \
svimage.o \
svmultithreadprocessor.o \
svprocessorv1.o \
svprocessorv2.o \
moc_svmultithreadprocessor.o \
moc_svprocessorv1.o \
moc_svprocessorv2.o
DIST = /usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/shell-unix.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/unix.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/linux.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-base.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/qconfig.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_platformsupport_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_config.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_post.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_pre.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_post.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/gdb_dwarf_index.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/warn_on.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/resources.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/moc.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/exceptions.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/yacc.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/lex.prf \
CSV.pro \
CSV.pro
QMAKE_TARGET = CSV
DESTDIR = #avoid trailing-slash linebreak
TARGET = CSV
first: all
####### Implicit rules
.SUFFIXES: .o .c .cpp .cc .cxx .C
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
####### Build rules
all: Makefile $(TARGET)
$(TARGET): $(OBJECTS)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
Makefile: CSV.pro /usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/shell-unix.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/unix.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/linux.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-base.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/qconfig.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_platformsupport_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_config.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_post.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_pre.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_post.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/gdb_dwarf_index.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/warn_on.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/resources.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/moc.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/exceptions.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/yacc.prf \
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/lex.prf \
CSV.pro \
/usr/lib/i386-linux-gnu/libQt5Gui.prl \
/usr/lib/i386-linux-gnu/libQt5Core.prl
$(QMAKE) -o Makefile CSV.pro
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_pre.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/shell-unix.conf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/unix.conf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/linux.conf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base.conf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-base.conf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/common/g++-unix.conf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/qconfig.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_platformsupport_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_functions.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt_config.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/spec_post.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_pre.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/resolve_config.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/default_post.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/gdb_dwarf_index.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/warn_on.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/qt.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/resources.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/moc.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/opengl.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/unix/thread.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/testcase_targets.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/exceptions.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/yacc.prf:
/usr/lib/i386-linux-gnu/qt5/mkspecs/features/lex.prf:
CSV.pro:
/usr/lib/i386-linux-gnu/libQt5Gui.prl:
/usr/lib/i386-linux-gnu/libQt5Core.prl:
qmake: FORCE
@$(QMAKE) -o Makefile CSV.pro
qmake_all: FORCE
dist:
@test -d .tmp/CSV1.0.0 || mkdir -p .tmp/CSV1.0.0
$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/CSV1.0.0/ && $(COPY_FILE) --parents svimage.h svmultithreadprocessor.h svprocessorv1.h svprocessorv2.h .tmp/CSV1.0.0/ && $(COPY_FILE) --parents main.cpp svimage.cpp svmultithreadprocessor.cpp svprocessorv1.cpp svprocessorv2.cpp .tmp/CSV1.0.0/ && (cd `dirname .tmp/CSV1.0.0` && $(TAR) CSV1.0.0.tar CSV1.0.0 && $(COMPRESS) CSV1.0.0.tar) && $(MOVE) `dirname .tmp/CSV1.0.0`/CSV1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/CSV1.0.0
clean:compiler_clean
-$(DEL_FILE) $(OBJECTS)
-$(DEL_FILE) *~ core *.core
####### Sub-libraries
distclean: clean
-$(DEL_FILE) $(TARGET)
-$(DEL_FILE) Makefile
mocclean: compiler_moc_header_clean compiler_moc_source_clean
mocables: compiler_moc_header_make_all compiler_moc_source_make_all
check: first
compiler_rcc_make_all:
compiler_rcc_clean:
compiler_moc_header_make_all: moc_svmultithreadprocessor.cpp moc_svprocessorv1.cpp moc_svprocessorv2.cpp
compiler_moc_header_clean:
-$(DEL_FILE) moc_svmultithreadprocessor.cpp moc_svprocessorv1.cpp moc_svprocessorv2.cpp
moc_svmultithreadprocessor.cpp: /usr/include/qt5/QtCore/QThread \
/usr/include/qt5/QtCore/qthread.h \
/usr/include/qt5/QtCore/qobject.h \
/usr/include/qt5/QtCore/qobjectdefs.h \
/usr/include/qt5/QtCore/qnamespace.h \
/usr/include/qt5/QtCore/qglobal.h \
/usr/include/qt5/QtCore/qconfig.h \
/usr/include/qt5/QtCore/qfeatures.h \
/usr/include/qt5/QtCore/qsystemdetection.h \
/usr/include/qt5/QtCore/qprocessordetection.h \
/usr/include/qt5/QtCore/qcompilerdetection.h \
/usr/include/qt5/QtCore/qglobalstatic.h \
/usr/include/qt5/QtCore/qatomic.h \
/usr/include/qt5/QtCore/qbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_bootstrap.h \
/usr/include/qt5/QtCore/qgenericatomic.h \
/usr/include/qt5/QtCore/qatomic_msvc.h \
/usr/include/qt5/QtCore/qatomic_integrity.h \
/usr/include/qt5/QtCore/qoldbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_vxworks.h \
/usr/include/qt5/QtCore/qatomic_power.h \
/usr/include/qt5/QtCore/qatomic_alpha.h \
/usr/include/qt5/QtCore/qatomic_armv7.h \
/usr/include/qt5/QtCore/qatomic_armv6.h \
/usr/include/qt5/QtCore/qatomic_armv5.h \
/usr/include/qt5/QtCore/qatomic_bfin.h \
/usr/include/qt5/QtCore/qatomic_ia64.h \
/usr/include/qt5/QtCore/qatomic_mips.h \
/usr/include/qt5/QtCore/qatomic_s390.h \
/usr/include/qt5/QtCore/qatomic_sh4a.h \
/usr/include/qt5/QtCore/qatomic_sparc.h \
/usr/include/qt5/QtCore/qatomic_gcc.h \
/usr/include/qt5/QtCore/qatomic_x86.h \
/usr/include/qt5/QtCore/qatomic_cxx11.h \
/usr/include/qt5/QtCore/qatomic_unix.h \
/usr/include/qt5/QtCore/qmutex.h \
/usr/include/qt5/QtCore/qlogging.h \
/usr/include/qt5/QtCore/qflags.h \
/usr/include/qt5/QtCore/qtypeinfo.h \
/usr/include/qt5/QtCore/qtypetraits.h \
/usr/include/qt5/QtCore/qsysinfo.h \
/usr/include/qt5/QtCore/qobjectdefs_impl.h \
/usr/include/qt5/QtCore/qstring.h \
/usr/include/qt5/QtCore/qchar.h \
/usr/include/qt5/QtCore/qbytearray.h \
/usr/include/qt5/QtCore/qrefcount.h \
/usr/include/qt5/QtCore/qarraydata.h \
/usr/include/qt5/QtCore/qstringbuilder.h \
/usr/include/qt5/QtCore/qlist.h \
/usr/include/qt5/QtCore/qalgorithms.h \
/usr/include/qt5/QtCore/qiterator.h \
/usr/include/qt5/QtCore/qcoreevent.h \
/usr/include/qt5/QtCore/qscopedpointer.h \
/usr/include/qt5/QtCore/qmetatype.h \
/usr/include/qt5/QtCore/qvarlengtharray.h \
/usr/include/qt5/QtCore/qcontainerfwd.h \
/usr/include/qt5/QtCore/qisenum.h \
/usr/include/qt5/QtCore/qobject_impl.h \
svimage.h \
/usr/include/qt5/QtGui/QImage \
/usr/include/qt5/QtGui/qimage.h \
/usr/include/qt5/QtGui/qtransform.h \
/usr/include/qt5/QtGui/qmatrix.h \
/usr/include/qt5/QtGui/qpolygon.h \
/usr/include/qt5/QtCore/qvector.h \
/usr/include/qt5/QtCore/qpoint.h \
/usr/include/qt5/QtCore/qrect.h \
/usr/include/qt5/QtCore/qsize.h \
/usr/include/qt5/QtGui/qregion.h \
/usr/include/qt5/QtGui/qwindowdefs.h \
/usr/include/qt5/QtGui/qwindowdefs_win.h \
/usr/include/qt5/QtCore/qdatastream.h \
/usr/include/qt5/QtCore/qiodevice.h \
/usr/include/qt5/QtCore/qpair.h \
/usr/include/qt5/QtCore/qline.h \
/usr/include/qt5/QtGui/qpainterpath.h \
/usr/include/qt5/QtGui/qpaintdevice.h \
/usr/include/qt5/QtGui/qrgb.h \
/usr/include/qt5/QtCore/qstringlist.h \
/usr/include/qt5/QtCore/qregexp.h \
/usr/include/qt5/QtCore/qstringmatcher.h \
/usr/include/qt5/QtGui/QRgb \
/usr/include/qt5/QtGui/QColor \
/usr/include/qt5/QtGui/qcolor.h \
svmultithreadprocessor.h
/usr/lib/i386-linux-gnu/qt5/bin/moc $(DEFINES) $(INCPATH) -I/usr/include/c++/4.8 -I/usr/include/i386-linux-gnu/c++/4.8 -I/usr/include/c++/4.8/backward -I/usr/lib/gcc/i686-linux-gnu/4.8/include -I/usr/local/include -I/usr/lib/gcc/i686-linux-gnu/4.8/include-fixed -I/usr/include/i386-linux-gnu -I/usr/include svmultithreadprocessor.h -o moc_svmultithreadprocessor.cpp
moc_svprocessorv1.cpp: svmultithreadprocessor.h \
/usr/include/qt5/QtCore/QThread \
/usr/include/qt5/QtCore/qthread.h \
/usr/include/qt5/QtCore/qobject.h \
/usr/include/qt5/QtCore/qobjectdefs.h \
/usr/include/qt5/QtCore/qnamespace.h \
/usr/include/qt5/QtCore/qglobal.h \
/usr/include/qt5/QtCore/qconfig.h \
/usr/include/qt5/QtCore/qfeatures.h \
/usr/include/qt5/QtCore/qsystemdetection.h \
/usr/include/qt5/QtCore/qprocessordetection.h \
/usr/include/qt5/QtCore/qcompilerdetection.h \
/usr/include/qt5/QtCore/qglobalstatic.h \
/usr/include/qt5/QtCore/qatomic.h \
/usr/include/qt5/QtCore/qbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_bootstrap.h \
/usr/include/qt5/QtCore/qgenericatomic.h \
/usr/include/qt5/QtCore/qatomic_msvc.h \
/usr/include/qt5/QtCore/qatomic_integrity.h \
/usr/include/qt5/QtCore/qoldbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_vxworks.h \
/usr/include/qt5/QtCore/qatomic_power.h \
/usr/include/qt5/QtCore/qatomic_alpha.h \
/usr/include/qt5/QtCore/qatomic_armv7.h \
/usr/include/qt5/QtCore/qatomic_armv6.h \
/usr/include/qt5/QtCore/qatomic_armv5.h \
/usr/include/qt5/QtCore/qatomic_bfin.h \
/usr/include/qt5/QtCore/qatomic_ia64.h \
/usr/include/qt5/QtCore/qatomic_mips.h \
/usr/include/qt5/QtCore/qatomic_s390.h \
/usr/include/qt5/QtCore/qatomic_sh4a.h \
/usr/include/qt5/QtCore/qatomic_sparc.h \
/usr/include/qt5/QtCore/qatomic_gcc.h \
/usr/include/qt5/QtCore/qatomic_x86.h \
/usr/include/qt5/QtCore/qatomic_cxx11.h \
/usr/include/qt5/QtCore/qatomic_unix.h \
/usr/include/qt5/QtCore/qmutex.h \
/usr/include/qt5/QtCore/qlogging.h \
/usr/include/qt5/QtCore/qflags.h \
/usr/include/qt5/QtCore/qtypeinfo.h \
/usr/include/qt5/QtCore/qtypetraits.h \
/usr/include/qt5/QtCore/qsysinfo.h \
/usr/include/qt5/QtCore/qobjectdefs_impl.h \
/usr/include/qt5/QtCore/qstring.h \
/usr/include/qt5/QtCore/qchar.h \
/usr/include/qt5/QtCore/qbytearray.h \
/usr/include/qt5/QtCore/qrefcount.h \
/usr/include/qt5/QtCore/qarraydata.h \
/usr/include/qt5/QtCore/qstringbuilder.h \
/usr/include/qt5/QtCore/qlist.h \
/usr/include/qt5/QtCore/qalgorithms.h \
/usr/include/qt5/QtCore/qiterator.h \
/usr/include/qt5/QtCore/qcoreevent.h \
/usr/include/qt5/QtCore/qscopedpointer.h \
/usr/include/qt5/QtCore/qmetatype.h \
/usr/include/qt5/QtCore/qvarlengtharray.h \
/usr/include/qt5/QtCore/qcontainerfwd.h \
/usr/include/qt5/QtCore/qisenum.h \
/usr/include/qt5/QtCore/qobject_impl.h \
svimage.h \
/usr/include/qt5/QtGui/QImage \
/usr/include/qt5/QtGui/qimage.h \
/usr/include/qt5/QtGui/qtransform.h \
/usr/include/qt5/QtGui/qmatrix.h \
/usr/include/qt5/QtGui/qpolygon.h \
/usr/include/qt5/QtCore/qvector.h \
/usr/include/qt5/QtCore/qpoint.h \
/usr/include/qt5/QtCore/qrect.h \
/usr/include/qt5/QtCore/qsize.h \
/usr/include/qt5/QtGui/qregion.h \
/usr/include/qt5/QtGui/qwindowdefs.h \
/usr/include/qt5/QtGui/qwindowdefs_win.h \
/usr/include/qt5/QtCore/qdatastream.h \
/usr/include/qt5/QtCore/qiodevice.h \
/usr/include/qt5/QtCore/qpair.h \
/usr/include/qt5/QtCore/qline.h \
/usr/include/qt5/QtGui/qpainterpath.h \
/usr/include/qt5/QtGui/qpaintdevice.h \
/usr/include/qt5/QtGui/qrgb.h \
/usr/include/qt5/QtCore/qstringlist.h \
/usr/include/qt5/QtCore/qregexp.h \
/usr/include/qt5/QtCore/qstringmatcher.h \
/usr/include/qt5/QtGui/QRgb \
/usr/include/qt5/QtGui/QColor \
/usr/include/qt5/QtGui/qcolor.h \
svprocessorv1.h
/usr/lib/i386-linux-gnu/qt5/bin/moc $(DEFINES) $(INCPATH) -I/usr/include/c++/4.8 -I/usr/include/i386-linux-gnu/c++/4.8 -I/usr/include/c++/4.8/backward -I/usr/lib/gcc/i686-linux-gnu/4.8/include -I/usr/local/include -I/usr/lib/gcc/i686-linux-gnu/4.8/include-fixed -I/usr/include/i386-linux-gnu -I/usr/include svprocessorv1.h -o moc_svprocessorv1.cpp
moc_svprocessorv2.cpp: svprocessorv2.h
/usr/lib/i386-linux-gnu/qt5/bin/moc $(DEFINES) $(INCPATH) -I/usr/include/c++/4.8 -I/usr/include/i386-linux-gnu/c++/4.8 -I/usr/include/c++/4.8/backward -I/usr/lib/gcc/i686-linux-gnu/4.8/include -I/usr/local/include -I/usr/lib/gcc/i686-linux-gnu/4.8/include-fixed -I/usr/include/i386-linux-gnu -I/usr/include svprocessorv2.h -o moc_svprocessorv2.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: compiler_moc_header_clean
####### Compile
main.o: main.cpp /usr/include/qt5/QtCore/QCoreApplication \
/usr/include/qt5/QtCore/qcoreapplication.h \
/usr/include/qt5/QtCore/qglobal.h \
/usr/include/qt5/QtCore/qconfig.h \
/usr/include/qt5/QtCore/qfeatures.h \
/usr/include/qt5/QtCore/qsystemdetection.h \
/usr/include/qt5/QtCore/qprocessordetection.h \
/usr/include/qt5/QtCore/qcompilerdetection.h \
/usr/include/qt5/QtCore/qglobalstatic.h \
/usr/include/qt5/QtCore/qatomic.h \
/usr/include/qt5/QtCore/qbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_bootstrap.h \
/usr/include/qt5/QtCore/qgenericatomic.h \
/usr/include/qt5/QtCore/qatomic_msvc.h \
/usr/include/qt5/QtCore/qatomic_integrity.h \
/usr/include/qt5/QtCore/qoldbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_vxworks.h \
/usr/include/qt5/QtCore/qatomic_power.h \
/usr/include/qt5/QtCore/qatomic_alpha.h \
/usr/include/qt5/QtCore/qatomic_armv7.h \
/usr/include/qt5/QtCore/qatomic_armv6.h \
/usr/include/qt5/QtCore/qatomic_armv5.h \
/usr/include/qt5/QtCore/qatomic_bfin.h \
/usr/include/qt5/QtCore/qatomic_ia64.h \
/usr/include/qt5/QtCore/qatomic_mips.h \
/usr/include/qt5/QtCore/qatomic_s390.h \
/usr/include/qt5/QtCore/qatomic_sh4a.h \
/usr/include/qt5/QtCore/qatomic_sparc.h \
/usr/include/qt5/QtCore/qatomic_gcc.h \
/usr/include/qt5/QtCore/qatomic_x86.h \
/usr/include/qt5/QtCore/qatomic_cxx11.h \
/usr/include/qt5/QtCore/qatomic_unix.h \
/usr/include/qt5/QtCore/qmutex.h \
/usr/include/qt5/QtCore/qlogging.h \
/usr/include/qt5/QtCore/qflags.h \
/usr/include/qt5/QtCore/qtypeinfo.h \
/usr/include/qt5/QtCore/qtypetraits.h \
/usr/include/qt5/QtCore/qsysinfo.h \
/usr/include/qt5/QtCore/qstring.h \
/usr/include/qt5/QtCore/qchar.h \
/usr/include/qt5/QtCore/qbytearray.h \
/usr/include/qt5/QtCore/qrefcount.h \
/usr/include/qt5/QtCore/qnamespace.h \
/usr/include/qt5/QtCore/qarraydata.h \
/usr/include/qt5/QtCore/qstringbuilder.h \
/usr/include/qt5/QtCore/qobject.h \
/usr/include/qt5/QtCore/qobjectdefs.h \
/usr/include/qt5/QtCore/qobjectdefs_impl.h \
/usr/include/qt5/QtCore/qlist.h \
/usr/include/qt5/QtCore/qalgorithms.h \
/usr/include/qt5/QtCore/qiterator.h \
/usr/include/qt5/QtCore/qcoreevent.h \
/usr/include/qt5/QtCore/qscopedpointer.h \
/usr/include/qt5/QtCore/qmetatype.h \
/usr/include/qt5/QtCore/qvarlengtharray.h \
/usr/include/qt5/QtCore/qcontainerfwd.h \
/usr/include/qt5/QtCore/qisenum.h \
/usr/include/qt5/QtCore/qobject_impl.h \
/usr/include/qt5/QtCore/qeventloop.h \
/usr/include/qt5/QtGui/QPixmap \
/usr/include/qt5/QtGui/qpixmap.h \
/usr/include/qt5/QtGui/qpaintdevice.h \
/usr/include/qt5/QtGui/qwindowdefs.h \
/usr/include/qt5/QtGui/qwindowdefs_win.h \
/usr/include/qt5/QtCore/qrect.h \
/usr/include/qt5/QtCore/qsize.h \
/usr/include/qt5/QtCore/qpoint.h \
/usr/include/qt5/QtGui/qcolor.h \
/usr/include/qt5/QtGui/qrgb.h \
/usr/include/qt5/QtCore/qstringlist.h \
/usr/include/qt5/QtCore/qdatastream.h \
/usr/include/qt5/QtCore/qiodevice.h \
/usr/include/qt5/QtCore/qpair.h \
/usr/include/qt5/QtCore/qregexp.h \
/usr/include/qt5/QtCore/qstringmatcher.h \
/usr/include/qt5/QtCore/qsharedpointer.h \
/usr/include/qt5/QtCore/qshareddata.h \
/usr/include/qt5/QtCore/qsharedpointer_impl.h \
/usr/include/qt5/QtCore/qhash.h \
/usr/include/qt5/QtGui/qimage.h \
/usr/include/qt5/QtGui/qtransform.h \
/usr/include/qt5/QtGui/qmatrix.h \
/usr/include/qt5/QtGui/qpolygon.h \
/usr/include/qt5/QtCore/qvector.h \
/usr/include/qt5/QtGui/qregion.h \
/usr/include/qt5/QtCore/qline.h \
/usr/include/qt5/QtGui/qpainterpath.h \
svimage.h \
/usr/include/qt5/QtGui/QImage \
/usr/include/qt5/QtGui/QRgb \
/usr/include/qt5/QtGui/QColor \
svprocessorv1.h \
svmultithreadprocessor.h \
/usr/include/qt5/QtCore/QThread \
/usr/include/qt5/QtCore/qthread.h \
svprocessorv2.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
svimage.o: svimage.cpp svimage.h \
/usr/include/qt5/QtGui/QImage \
/usr/include/qt5/QtGui/qimage.h \
/usr/include/qt5/QtGui/qtransform.h \
/usr/include/qt5/QtGui/qmatrix.h \
/usr/include/qt5/QtGui/qpolygon.h \
/usr/include/qt5/QtCore/qvector.h \
/usr/include/qt5/QtCore/qalgorithms.h \
/usr/include/qt5/QtCore/qglobal.h \
/usr/include/qt5/QtCore/qconfig.h \
/usr/include/qt5/QtCore/qfeatures.h \
/usr/include/qt5/QtCore/qsystemdetection.h \
/usr/include/qt5/QtCore/qprocessordetection.h \
/usr/include/qt5/QtCore/qcompilerdetection.h \
/usr/include/qt5/QtCore/qglobalstatic.h \
/usr/include/qt5/QtCore/qatomic.h \
/usr/include/qt5/QtCore/qbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_bootstrap.h \
/usr/include/qt5/QtCore/qgenericatomic.h \
/usr/include/qt5/QtCore/qatomic_msvc.h \
/usr/include/qt5/QtCore/qatomic_integrity.h \
/usr/include/qt5/QtCore/qoldbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_vxworks.h \
/usr/include/qt5/QtCore/qatomic_power.h \
/usr/include/qt5/QtCore/qatomic_alpha.h \
/usr/include/qt5/QtCore/qatomic_armv7.h \
/usr/include/qt5/QtCore/qatomic_armv6.h \
/usr/include/qt5/QtCore/qatomic_armv5.h \
/usr/include/qt5/QtCore/qatomic_bfin.h \
/usr/include/qt5/QtCore/qatomic_ia64.h \
/usr/include/qt5/QtCore/qatomic_mips.h \
/usr/include/qt5/QtCore/qatomic_s390.h \
/usr/include/qt5/QtCore/qatomic_sh4a.h \
/usr/include/qt5/QtCore/qatomic_sparc.h \
/usr/include/qt5/QtCore/qatomic_gcc.h \
/usr/include/qt5/QtCore/qatomic_x86.h \
/usr/include/qt5/QtCore/qatomic_cxx11.h \
/usr/include/qt5/QtCore/qatomic_unix.h \
/usr/include/qt5/QtCore/qmutex.h \
/usr/include/qt5/QtCore/qlogging.h \
/usr/include/qt5/QtCore/qflags.h \
/usr/include/qt5/QtCore/qtypeinfo.h \
/usr/include/qt5/QtCore/qtypetraits.h \
/usr/include/qt5/QtCore/qsysinfo.h \
/usr/include/qt5/QtCore/qiterator.h \
/usr/include/qt5/QtCore/qlist.h \
/usr/include/qt5/QtCore/qrefcount.h \
/usr/include/qt5/QtCore/qarraydata.h \
/usr/include/qt5/QtCore/qpoint.h \
/usr/include/qt5/QtCore/qnamespace.h \
/usr/include/qt5/QtCore/qrect.h \
/usr/include/qt5/QtCore/qsize.h \
/usr/include/qt5/QtGui/qregion.h \
/usr/include/qt5/QtGui/qwindowdefs.h \
/usr/include/qt5/QtCore/qobjectdefs.h \
/usr/include/qt5/QtCore/qobjectdefs_impl.h \
/usr/include/qt5/QtGui/qwindowdefs_win.h \
/usr/include/qt5/QtCore/qdatastream.h \
/usr/include/qt5/QtCore/qscopedpointer.h \
/usr/include/qt5/QtCore/qiodevice.h \
/usr/include/qt5/QtCore/qobject.h \
/usr/include/qt5/QtCore/qstring.h \
/usr/include/qt5/QtCore/qchar.h \
/usr/include/qt5/QtCore/qbytearray.h \
/usr/include/qt5/QtCore/qstringbuilder.h \
/usr/include/qt5/QtCore/qcoreevent.h \
/usr/include/qt5/QtCore/qmetatype.h \
/usr/include/qt5/QtCore/qvarlengtharray.h \
/usr/include/qt5/QtCore/qcontainerfwd.h \
/usr/include/qt5/QtCore/qisenum.h \
/usr/include/qt5/QtCore/qobject_impl.h \
/usr/include/qt5/QtCore/qpair.h \
/usr/include/qt5/QtCore/qline.h \
/usr/include/qt5/QtGui/qpainterpath.h \
/usr/include/qt5/QtGui/qpaintdevice.h \
/usr/include/qt5/QtGui/qrgb.h \
/usr/include/qt5/QtCore/qstringlist.h \
/usr/include/qt5/QtCore/qregexp.h \
/usr/include/qt5/QtCore/qstringmatcher.h \
/usr/include/qt5/QtGui/QRgb \
/usr/include/qt5/QtGui/QColor \
/usr/include/qt5/QtGui/qcolor.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o svimage.o svimage.cpp
svmultithreadprocessor.o: svmultithreadprocessor.cpp svmultithreadprocessor.h \
/usr/include/qt5/QtCore/QThread \
/usr/include/qt5/QtCore/qthread.h \
/usr/include/qt5/QtCore/qobject.h \
/usr/include/qt5/QtCore/qobjectdefs.h \
/usr/include/qt5/QtCore/qnamespace.h \
/usr/include/qt5/QtCore/qglobal.h \
/usr/include/qt5/QtCore/qconfig.h \
/usr/include/qt5/QtCore/qfeatures.h \
/usr/include/qt5/QtCore/qsystemdetection.h \
/usr/include/qt5/QtCore/qprocessordetection.h \
/usr/include/qt5/QtCore/qcompilerdetection.h \
/usr/include/qt5/QtCore/qglobalstatic.h \
/usr/include/qt5/QtCore/qatomic.h \
/usr/include/qt5/QtCore/qbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_bootstrap.h \
/usr/include/qt5/QtCore/qgenericatomic.h \
/usr/include/qt5/QtCore/qatomic_msvc.h \
/usr/include/qt5/QtCore/qatomic_integrity.h \
/usr/include/qt5/QtCore/qoldbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_vxworks.h \
/usr/include/qt5/QtCore/qatomic_power.h \
/usr/include/qt5/QtCore/qatomic_alpha.h \
/usr/include/qt5/QtCore/qatomic_armv7.h \
/usr/include/qt5/QtCore/qatomic_armv6.h \
/usr/include/qt5/QtCore/qatomic_armv5.h \
/usr/include/qt5/QtCore/qatomic_bfin.h \
/usr/include/qt5/QtCore/qatomic_ia64.h \
/usr/include/qt5/QtCore/qatomic_mips.h \
/usr/include/qt5/QtCore/qatomic_s390.h \
/usr/include/qt5/QtCore/qatomic_sh4a.h \
/usr/include/qt5/QtCore/qatomic_sparc.h \
/usr/include/qt5/QtCore/qatomic_gcc.h \
/usr/include/qt5/QtCore/qatomic_x86.h \
/usr/include/qt5/QtCore/qatomic_cxx11.h \
/usr/include/qt5/QtCore/qatomic_unix.h \
/usr/include/qt5/QtCore/qmutex.h \
/usr/include/qt5/QtCore/qlogging.h \
/usr/include/qt5/QtCore/qflags.h \
/usr/include/qt5/QtCore/qtypeinfo.h \
/usr/include/qt5/QtCore/qtypetraits.h \
/usr/include/qt5/QtCore/qsysinfo.h \
/usr/include/qt5/QtCore/qobjectdefs_impl.h \
/usr/include/qt5/QtCore/qstring.h \
/usr/include/qt5/QtCore/qchar.h \
/usr/include/qt5/QtCore/qbytearray.h \
/usr/include/qt5/QtCore/qrefcount.h \
/usr/include/qt5/QtCore/qarraydata.h \
/usr/include/qt5/QtCore/qstringbuilder.h \
/usr/include/qt5/QtCore/qlist.h \
/usr/include/qt5/QtCore/qalgorithms.h \
/usr/include/qt5/QtCore/qiterator.h \
/usr/include/qt5/QtCore/qcoreevent.h \
/usr/include/qt5/QtCore/qscopedpointer.h \
/usr/include/qt5/QtCore/qmetatype.h \
/usr/include/qt5/QtCore/qvarlengtharray.h \
/usr/include/qt5/QtCore/qcontainerfwd.h \
/usr/include/qt5/QtCore/qisenum.h \
/usr/include/qt5/QtCore/qobject_impl.h \
svimage.h \
/usr/include/qt5/QtGui/QImage \
/usr/include/qt5/QtGui/qimage.h \
/usr/include/qt5/QtGui/qtransform.h \
/usr/include/qt5/QtGui/qmatrix.h \
/usr/include/qt5/QtGui/qpolygon.h \
/usr/include/qt5/QtCore/qvector.h \
/usr/include/qt5/QtCore/qpoint.h \
/usr/include/qt5/QtCore/qrect.h \
/usr/include/qt5/QtCore/qsize.h \
/usr/include/qt5/QtGui/qregion.h \
/usr/include/qt5/QtGui/qwindowdefs.h \
/usr/include/qt5/QtGui/qwindowdefs_win.h \
/usr/include/qt5/QtCore/qdatastream.h \
/usr/include/qt5/QtCore/qiodevice.h \
/usr/include/qt5/QtCore/qpair.h \
/usr/include/qt5/QtCore/qline.h \
/usr/include/qt5/QtGui/qpainterpath.h \
/usr/include/qt5/QtGui/qpaintdevice.h \
/usr/include/qt5/QtGui/qrgb.h \
/usr/include/qt5/QtCore/qstringlist.h \
/usr/include/qt5/QtCore/qregexp.h \
/usr/include/qt5/QtCore/qstringmatcher.h \
/usr/include/qt5/QtGui/QRgb \
/usr/include/qt5/QtGui/QColor \
/usr/include/qt5/QtGui/qcolor.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o svmultithreadprocessor.o svmultithreadprocessor.cpp
svprocessorv1.o: svprocessorv1.cpp svprocessorv1.h \
svmultithreadprocessor.h \
/usr/include/qt5/QtCore/QThread \
/usr/include/qt5/QtCore/qthread.h \
/usr/include/qt5/QtCore/qobject.h \
/usr/include/qt5/QtCore/qobjectdefs.h \
/usr/include/qt5/QtCore/qnamespace.h \
/usr/include/qt5/QtCore/qglobal.h \
/usr/include/qt5/QtCore/qconfig.h \
/usr/include/qt5/QtCore/qfeatures.h \
/usr/include/qt5/QtCore/qsystemdetection.h \
/usr/include/qt5/QtCore/qprocessordetection.h \
/usr/include/qt5/QtCore/qcompilerdetection.h \
/usr/include/qt5/QtCore/qglobalstatic.h \
/usr/include/qt5/QtCore/qatomic.h \
/usr/include/qt5/QtCore/qbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_bootstrap.h \
/usr/include/qt5/QtCore/qgenericatomic.h \
/usr/include/qt5/QtCore/qatomic_msvc.h \
/usr/include/qt5/QtCore/qatomic_integrity.h \
/usr/include/qt5/QtCore/qoldbasicatomic.h \
/usr/include/qt5/QtCore/qatomic_vxworks.h \
/usr/include/qt5/QtCore/qatomic_power.h \
/usr/include/qt5/QtCore/qatomic_alpha.h \
/usr/include/qt5/QtCore/qatomic_armv7.h \
/usr/include/qt5/QtCore/qatomic_armv6.h \
/usr/include/qt5/QtCore/qatomic_armv5.h \
/usr/include/qt5/QtCore/qatomic_bfin.h \
/usr/include/qt5/QtCore/qatomic_ia64.h \
/usr/include/qt5/QtCore/qatomic_mips.h \
/usr/include/qt5/QtCore/qatomic_s390.h \
/usr/include/qt5/QtCore/qatomic_sh4a.h \
/usr/include/qt5/QtCore/qatomic_sparc.h \
/usr/include/qt5/QtCore/qatomic_gcc.h \
/usr/include/qt5/QtCore/qatomic_x86.h \
/usr/include/qt5/QtCore/qatomic_cxx11.h \
/usr/include/qt5/QtCore/qatomic_unix.h \
/usr/include/qt5/QtCore/qmutex.h \
/usr/include/qt5/QtCore/qlogging.h \
/usr/include/qt5/QtCore/qflags.h \
/usr/include/qt5/QtCore/qtypeinfo.h \
/usr/include/qt5/QtCore/qtypetraits.h \
/usr/include/qt5/QtCore/qsysinfo.h \
/usr/include/qt5/QtCore/qobjectdefs_impl.h \
/usr/include/qt5/QtCore/qstring.h \
/usr/include/qt5/QtCore/qchar.h \
/usr/include/qt5/QtCore/qbytearray.h \
/usr/include/qt5/QtCore/qrefcount.h \
/usr/include/qt5/QtCore/qarraydata.h \
/usr/include/qt5/QtCore/qstringbuilder.h \
/usr/include/qt5/QtCore/qlist.h \
/usr/include/qt5/QtCore/qalgorithms.h \
/usr/include/qt5/QtCore/qiterator.h \
/usr/include/qt5/QtCore/qcoreevent.h \
/usr/include/qt5/QtCore/qscopedpointer.h \
/usr/include/qt5/QtCore/qmetatype.h \
/usr/include/qt5/QtCore/qvarlengtharray.h \
/usr/include/qt5/QtCore/qcontainerfwd.h \
/usr/include/qt5/QtCore/qisenum.h \
/usr/include/qt5/QtCore/qobject_impl.h \
svimage.h \
/usr/include/qt5/QtGui/QImage \
/usr/include/qt5/QtGui/qimage.h \
/usr/include/qt5/QtGui/qtransform.h \
/usr/include/qt5/QtGui/qmatrix.h \
/usr/include/qt5/QtGui/qpolygon.h \
/usr/include/qt5/QtCore/qvector.h \
/usr/include/qt5/QtCore/qpoint.h \
/usr/include/qt5/QtCore/qrect.h \
/usr/include/qt5/QtCore/qsize.h \
/usr/include/qt5/QtGui/qregion.h \
/usr/include/qt5/QtGui/qwindowdefs.h \
/usr/include/qt5/QtGui/qwindowdefs_win.h \
/usr/include/qt5/QtCore/qdatastream.h \
/usr/include/qt5/QtCore/qiodevice.h \
/usr/include/qt5/QtCore/qpair.h \
/usr/include/qt5/QtCore/qline.h \
/usr/include/qt5/QtGui/qpainterpath.h \
/usr/include/qt5/QtGui/qpaintdevice.h \
/usr/include/qt5/QtGui/qrgb.h \
/usr/include/qt5/QtCore/qstringlist.h \
/usr/include/qt5/QtCore/qregexp.h \
/usr/include/qt5/QtCore/qstringmatcher.h \
/usr/include/qt5/QtGui/QRgb \
/usr/include/qt5/QtGui/QColor \
/usr/include/qt5/QtGui/qcolor.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o svprocessorv1.o svprocessorv1.cpp
svprocessorv2.o: svprocessorv2.cpp svprocessorv2.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o svprocessorv2.o svprocessorv2.cpp
moc_svmultithreadprocessor.o: moc_svmultithreadprocessor.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_svmultithreadprocessor.o moc_svmultithreadprocessor.cpp
moc_svprocessorv1.o: moc_svprocessorv1.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_svprocessorv1.o moc_svprocessorv1.cpp
moc_svprocessorv2.o: moc_svprocessorv2.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_svprocessorv2.o moc_svprocessorv2.cpp
####### Install
install: FORCE
uninstall: FORCE
FORCE:

View File

@ -1,59 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
-include ../makefile.init
RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include src/subdir.mk
-include subdir.mk
-include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
endif
-include ../makefile.defs
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: CSV
# Tool invocations
CSV: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C++ Linker'
g++ -o "CSV" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
# Other Targets
clean:
-$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) CSV
-@echo ' '
.PHONY: all clean dependents
.SECONDARY:
-include ../makefile.targets

View File

@ -1,8 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
USER_OBJS :=
LIBS := -lopencv_core -lpthread -lboost_system -lpcl -lpcl_visualization -lopencv_imgproc -lopencv_highgui -lopencv_legacy

View File

@ -1,27 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
O_SRCS :=
CPP_SRCS :=
C_UPPER_SRCS :=
C_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
CXX_SRCS :=
C++_SRCS :=
CC_SRCS :=
OBJS :=
C++_DEPS :=
C_DEPS :=
CC_DEPS :=
CPP_DEPS :=
EXECUTABLES :=
CXX_DEPS :=
C_UPPER_DEPS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
src \

View File

@ -1,36 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
CPP_SRCS += \
../src/SvImage.cpp \
../src/SvMain.cpp \
../src/SvMultithreadProcessor.cpp \
../src/SvProcessorV1.cpp \
../src/SvProcessorV2.cpp
OBJS += \
./src/SvImage.o \
./src/SvMain.o \
./src/SvMultithreadProcessor.o \
./src/SvProcessorV1.o \
./src/SvProcessorV2.o
CPP_DEPS += \
./src/SvImage.d \
./src/SvMain.d \
./src/SvMultithreadProcessor.d \
./src/SvProcessorV1.d \
./src/SvProcessorV2.d
# Each subdirectory must supply rules for building sources it contributes
src/%.o: ../src/%.cpp
@echo 'Building file: $<'
@echo 'Invoking: GCC C++ Compiler'
g++ -std=c++11 -I/usr/include/pcl-1.7 -I/usr/include/vtk-5.8/ -I/usr/include/eigen3 -O3 -Wall -c -fmessage-length=0 -pthread -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

14
cl/kernel.cl Normal file
View File

@ -0,0 +1,14 @@
__kernel void ProcessLine(__global const float* a, __global const float* b, __global float* c, int iNumElements)
{
// get index into global data array
int iGID = get_global_id(0);
// bound check (equivalent to the limit on a 'for' loop for standard/serial C code
if (iGID >= iNumElements)
{
return;
}
// add the vector elements
c[iGID] = a[iGID] + b[iGID];
}

46
main.cpp Normal file
View File

@ -0,0 +1,46 @@
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlComponent>
#include <QQmlContext>
#include <QPixmap>
#include "svimage.h"
#include "svprocessor.h"
#include "svimageprovider.h"
int main(int argc, char *argv[])
{
QGuiApplication a(argc, argv);
QQmlApplicationEngine engine;
SvImageProvider* imageProvider = new SvImageProvider();
QImage imgLeft = QPixmap("img/left8.png").toImage();
QImage imgRight = QPixmap("img/right8.png").toImage();
QImage imgStereo(imgLeft.width(), imgRight.height(), QImage::Format_RGB32);
SvImage left(imgLeft);
SvImage right(imgRight);
SvImage stereo(imgStereo);
imageProvider->addImage("left", &left);
imageProvider->addImage("right", &right);
imageProvider->addImage("result", &stereo);
engine.addImageProvider("image", imageProvider);
engine.load(QUrl(QStringLiteral("qrc:///Main.qml")));
/*SvProcessor proc(&left, &right, &stereo, 4);
proc.start();*/
//
//QObject *object = component.create();
return a.exec();
}

6
resource.qrc Normal file
View File

@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file>Main.qml</file>
<file>img/left4.png</file>
</qresource>
</RCC>

View File

@ -1,74 +0,0 @@
/*
* SvImage.cpp
*
* Created on: 27 июня 2014 г.
* Author: andrey
*/
#include "SvImage.h"
int SvImage::getPixel(int x, int y, int channel = -1) {
if (y >= this->image->rows || y < 0 || x >= this->image->cols || x < 0) {
return 0;
}
uchar* pixel = this->image->ptr(y, x);
uchar value;
if (channel == -1 || channel > 2) {
value = 0.299 * pixel[0] + 0.587 * pixel[1] + 0.114 * pixel[2];
} else {
value = pixel[channel];
}
return value;
}
int SvImage::getPixelHue(int x, int y) {
uchar* pixel = this->image->ptr(y, x);
if (x >= 0 && x < this->image->cols && y >= 0 && y < this->image->rows) {
return abs(pixel[1] - pixel[0]) + abs(pixel[2] - pixel[1]);
}
return 0;
}
int SvImage::getPixelValue(int x, int y) {
uchar* pixel = this->image->ptr(y, x);
if (x >= 0 && x < this->image->cols && y >= 0 && y < this->image->rows) {
return (pixel[0] + pixel[1] + pixel[2])/3;
}
return 0;
}
void SvImage::putPixel(int x, int y, int value)
{
uchar* data;
if (x >= 0 && x < this->image->cols && y >= 0 && y < this->image->rows) {
data = this->image->ptr(y, x);
data[0] = value;
}
}
int SvImage::getHeight() {
return this->image->rows;
}
int SvImage::getWidth() {
return this->image->cols;
}
Mat& SvImage::getCvMatrix() {
return *this->image;
}
SvImage::SvImage(Mat& image) {
this->image = &image;
}
SvImage::~SvImage() {
}

View File

@ -1,34 +0,0 @@
/*
* SvImage.h
*
* Created on: 27 июня 2014 г.
* Author: andrey
*/
#ifndef SVIMAGE_H_
#define SVIMAGE_H_
#include <opencv2/opencv.hpp>
using namespace cv;
class SvImage {
protected:
Mat* image;
public:
int getPixel(int x, int y, int channel);
int getPixelHue(int x, int y);
int getPixelValue(int x, int y);
void putPixel(int x, int y, int val);
int getHeight();
int getWidth();
Mat& getCvMatrix();
SvImage(Mat& image);
virtual ~SvImage();
};
#endif /* SVIMAGE_H_ */

View File

@ -1,106 +0,0 @@
//============================================================================
// Name : CSV.cpp
// Author : Andrey
// Version :
// Copyright : Your copyright notice
// Description : Computer Stereo Vision in C++, Ansi-style
//============================================================================
#include <opencv2/opencv.hpp>
#include "SvImage.h"
#include "SvProcessorV1.h"
#include "SvProcessorV2.h"
#include <iostream>
#include <system_error>
#include <unistd.h>
//#include <pcl/point_cloud.h>
//#include <pcl/point_types.h>
//#include <pcl/visualization/pcl_visualizer.h>
//#include <vtkRenderWindow.h>
//#include <pcl/visualization/cloud_viewer.h>
//#include <pcl/filters/statistical_outlier_removal.h>
using namespace cv;
void CallBackFunc(int event, int x, int y, int flags, void* userdata)
{
if (event == EVENT_LBUTTONDOWN ) {
} else if ( event == EVENT_RBUTTONDOWN ) {
} else if ( event == EVENT_MBUTTONDOWN ) {
} else if ( event == EVENT_MOUSEMOVE ) {
}
}
int main(int argc, char** argv) {
Mat matLeft = imread("img/left8.png", 1);
Mat matRight = imread("img/right8.png", 1);
Mat matStereo(Mat::zeros(matLeft.rows, matLeft.cols, CV_8U));
SvImage left(matLeft);
SvImage right(matRight);
SvImage stereo(matStereo);
int line = 0;
SvProcessorV2 proc[4];
for (int i = 0; i < 4; i++) {
proc[i].setLeftImage(left);
proc[i].setRightImage(right);
}
while (line < stereo.getHeight()) {
for (int i = 0; i < 4; i++) {
if (line < stereo.getHeight() && !proc[i].isActive()) {
proc[i].run(stereo, line++);
}
}
}
//pcl::PointXYZRGB point;
//pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
//pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_filtered (new pcl::PointCloud<pcl::PointXYZRGB>);
/*cloud->resize(stereo.getHeight() * stereo.getWidth());
for (int y = 0; y < stereo.getHeight(); y++) {
for (int x = 0; x < stereo.getWidth(); x++) {
int i = stereo.getWidth() * y + x;
int value = stereo.getPixel(x, y, 0);
if (value) {
cloud->points[i].x = (x - (stereo.getWidth() / 2.0))/100.0;
cloud->points[i].y = (-y + (stereo.getHeight() / 2.0))/100.0;
cloud->points[i].z = (-stereo.getPixel(x, y, 0) * 6.0)/100.0;
cloud->points[i].r = left.getPixel(x, y, 2);
cloud->points[i].g = left.getPixel(x, y, 1);
cloud->points[i].b = left.getPixel(x, y, 0);
}
}
}*/
/*
pcl::StatisticalOutlierRemoval<pcl::PointXYZRGB> sor;
sor.setInputCloud(cloud);
sor.setMeanK(50);
sor.setStddevMulThresh(1.0);
sor.filter(*cloud_filtered);
*/
/*pcl::visualization::CloudViewer viewer("Simple Cloud Viewer");
viewer.showCloud(cloud);
while (!viewer.wasStopped ())
{
}*/
imshow("Display Image", stereo.getCvMatrix());
//setMouseCallback("Display Image", CallBackFunc, NULL);
waitKey();
return 0;
}

View File

@ -1,43 +0,0 @@
/*
* SvMultithreadProcessor.cpp
*
* Created on: 09 июля 2014 г.
* Author: andrey
*/
#include "SvMultithreadProcessor.h"
SvMultithreadProcessor::SvMultithreadProcessor(SvImage& left, SvImage& right) {
m_left = &left;
m_right = &right;
m_stereo = NULL;
m_line = 0;
}
SvMultithreadProcessor::SvMultithreadProcessor() {
}
int SvMultithreadProcessor::run(SvImage& stereo, int line) {
m_stereo = &stereo;
m_line = line;
m_thread = std::thread(&SvMultithreadProcessor::process, this);
return 0;
}
void SvMultithreadProcessor::process() {
exec();
m_thread.detach();
}
void SvMultithreadProcessor::exec() {
}
SvMultithreadProcessor::~SvMultithreadProcessor() {
if (m_thread.joinable()) {
m_thread.detach();
}
}

View File

@ -1,42 +0,0 @@
/*
* SvMultithreadProcessor.h
*
* Created on: 09 июля 2014 г.
* Author: andrey
*/
#ifndef SVMULTITHREADPROCESSOR_H_
#define SVMULTITHREADPROCESSOR_H_
#include <thread>
#include "SvImage.h"
class SvMultithreadProcessor {
protected:
SvImage* m_left;
SvImage* m_right;
SvImage* m_stereo;
std::thread m_thread;
int m_line;
public:
void setLeftImage(SvImage& image) { m_left = &image;}
void setRightImage(SvImage& image) { m_right = &image;}
bool isActive() { return m_thread.joinable(); }
void join() { m_thread.join(); }
void detach() { m_thread.detach(); }
int run(SvImage& stereo, int line);
void process();
virtual void exec();
SvMultithreadProcessor(SvImage& left, SvImage& right);
SvMultithreadProcessor();
virtual ~SvMultithreadProcessor();
};
#endif /* SVMULTITHREADPROCESSOR_H_ */

View File

@ -1,67 +0,0 @@
/*
* SvProcessor.cpp
*
* Created on: 27 июня 2014 г.
* Author: andrey
*/
#include "SvProcessorV1.h"
int SvProcessorV1::getPixelColor(int cursor) {
if (cursor == 0) {
return 0;
}
return ((10 * m_left->getWidth()) / (2.0 * 0.9 * cursor ));
}
/*
int SvProcessorV1::match(int x, int y, int j) {
int error = 0;
for (int i = 0; i <= 1; i++) {
for (int g = 0; g <= 2; g++) {
error += diff(x + i, y + g, x + i + j, y + g);
}
}
return error;
}*/
int SvProcessorV1::diff(int lx, int ly, int rx, int ry) {
int Rvalue, Gvalue, Bvalue, color;
Rvalue = abs(m_left->getPixel(lx, ly, 0) - m_right->getPixel(rx, ry, 0));
Gvalue = abs(m_left->getPixel(lx, ly, 1) - m_right->getPixel(rx, ry, 1));
Bvalue = abs(m_left->getPixel(lx, ly, 2) - m_right->getPixel(rx, ry, 2));
color = abs(Gvalue - Rvalue) + abs(Bvalue - Gvalue);
return (Gvalue + Rvalue + Bvalue) +
color * 4;
}
int SvProcessorV1::match(int x, int y, int j) {
int error = 0;
int ms = 4;
int c = diff(x, y, x + j, y),
l = 0, r = 0, t = 0, b = 0;
error = c;
for (int i = 1; i <= ms; i++) {
l += diff(x - i, y, x + j - i, y);
r += diff(x + i, y, x + j + i, y);
t += diff(x, y - i, x + j, y - i);
b += diff(x, y + i, x + j, y + i);
}
error += l > r ? r : l;
error += t > b ? b : t;
//error += l + r + b + t;
return error;
}
void SvProcessorV1::exec() {
}

View File

@ -1,31 +0,0 @@
/*
* SvProcessor.h
*
* Created on: 27 июня 2014 г.
* Author: andrey
*/
#ifndef SVPROCESSORV1_H_
#define SVPROCESSORV1_H_
#include <iostream>
#include <thread>
#include "SvImage.h"
#include "SvMultithreadProcessor.h"
using namespace std;
class SvProcessorV1 : public SvMultithreadProcessor {
protected:
const int windowSize = 90;
public:
int diff(int lx, int ly, int rx, int ry);
int match(int x, int y, int i);
void exec();
int getPixelColor(int cursor);
};
#endif /* SVPROCESSORV1_H_ */

View File

@ -1,12 +0,0 @@
/*
* SvProcessor.cpp
*
* Created on: 27 июня 2014 г.
* Author: andrey
*/
#include "SvProcessorV2.h"
void SvProcessorV2::exec() {
}

View File

@ -1,23 +0,0 @@
/*
* SvProcessor.h
*
* Created on: 27 июня 2014 г.
* Author: andrey
*/
#ifndef SVPROCESSOR_H_
#define SVPROCESSOR_H_
#include <iostream>
#include "SvImage.h"
#include "SvMultithreadProcessor.h"
class SvProcessorV2 : public SvMultithreadProcessor {
protected:
public:
void exec();
};
#endif /* SVPROCESSOR_H_ */

22
svabstractkernel.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef SVABSTRACTKERNEL_H
#define SVABSTRACTKERNEL_H
#include "svimage.h"
class SvAbstractKernel
{
protected:
SvImage* m_left;
SvImage* m_right;
SvImage* m_result;
public:
void setLeftImage(SvImage* image) {m_left = image;}
void setRightImage(SvImage* image) {m_right = image;}
void setResultImage(SvImage* image) {m_result = image;}
virtual void exec(int line) = 0;
virtual ~SvAbstractKernel() {}
};
#endif // SVABSTRACTKERNEL_H

89
svimage.cpp Normal file
View File

@ -0,0 +1,89 @@
#include "svimage.h"
int SvImage::getPixel(int x, int y, int channel = -1) {
if (y >= m_image->height() ||
y < 0 ||
x >= m_image->width()
|| x < 0) {
return 0;
}
QRgb rgb = m_image->pixel(x, y);
switch (channel) {
case 0:
return qRed(rgb);
case 1:
return qGreen(rgb);
case 2:
return qBlue(rgb);
default:
return qGray(rgb);
}
}
int SvImage::getPixelHue(int x, int y) {
if (y >= m_image->height() ||
y < 0 ||
x >= m_image->width()
|| x < 0) {
return 0;
}
QRgb rgb = m_image->pixel(x, y);
QColor color(rgb);
return color.hue();
}
int SvImage::getPixelValue(int x, int y) {
if (y >= m_image->height() ||
y < 0 ||
x >= m_image->width()
|| x < 0) {
return 0;
}
QRgb rgb = m_image->pixel(x, y);
QColor color(rgb);
return color.value();
}
void SvImage::putPixel(int x, int y, int value)
{
if (y >= m_image->height() ||
y < 0 ||
x >= m_image->width()
|| x < 0) {
return;
}
QColor color(value, value, value);
m_image->setPixel(x, y, color.rgb());
}
unsigned int SvImage::getHeight() {
return m_image->height();
}
unsigned int SvImage::getWidth() {
return m_image->width();
}
QImage& SvImage::getImage() {
return *m_image;
}
SvImage::SvImage(QImage& image) {
m_image = &image;
}
SvImage::~SvImage() {
}

28
svimage.h Normal file
View File

@ -0,0 +1,28 @@
#ifndef SVIMAGE_H
#define SVIMAGE_H
#include <QImage>
#include <QRgb>
#include <QColor>
class SvImage
{
protected:
QImage* m_image;
public:
int getPixel(int x, int y, int channel);
int getPixelHue(int x, int y);
int getPixelValue(int x, int y);
void putPixel(int x, int y, int val);
unsigned int getHeight();
unsigned int getWidth();
QImage& getImage();
SvImage(QImage& image);
virtual ~SvImage();
};
#endif // SVIMAGE_H

27
svimageprovider.cpp Normal file
View File

@ -0,0 +1,27 @@
#include "svimageprovider.h"
SvImageProvider::SvImageProvider():
QQuickImageProvider(QQuickImageProvider::Image)
{
}
QImage SvImageProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
{
Q_UNUSED(requestedSize)
SvImage* image = m_images[id];
if (image) {
*size = QSize(image->getWidth(), image->getHeight());
return image->getImage();
}
return QImage(0, 0, QImage::Format_RGB32);
}
void SvImageProvider::addImage(const QString &name, SvImage *image)
{
m_images[name] = image;
}

20
svimageprovider.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef SVIMAGEPROVIDER_H
#define SVIMAGEPROVIDER_H
#include <QtQuick/QQuickImageProvider>
#include <QHash>
#include "svimage.h"
class SvImageProvider : public QQuickImageProvider
{
protected:
QHash<QString, SvImage*> m_images;
public:
SvImageProvider();
virtual QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize);
void addImage(const QString &name, SvImage* image);
};
#endif // SVIMAGEPROVIDER_H

97
svkernelv1.cpp Normal file
View File

@ -0,0 +1,97 @@
#include "svkernelv1.h"
SvKernelV1::SvKernelV1()
{
}
SvKernelV1::~SvKernelV1()
{
}
int SvKernelV1::getPixelColor(int cursor)
{
if (cursor == 0) {
return 0;
}
return ((10 * m_left->getWidth()) / (2.0 * 0.9 * cursor ));
}
int SvKernelV1::diff(int lx, int ly, int rx, int ry)
{
int Rvalue, Gvalue, Bvalue, color;
Rvalue = abs(m_left->getPixel(lx, ly, 0) - m_right->getPixel(rx, ry, 0));
Gvalue = abs(m_left->getPixel(lx, ly, 1) - m_right->getPixel(rx, ry, 1));
Bvalue = abs(m_left->getPixel(lx, ly, 2) - m_right->getPixel(rx, ry, 2));
color = abs(Gvalue - Rvalue) + abs(Bvalue - Gvalue);
return (Gvalue + Rvalue + Bvalue) +
color * 4;
}
int SvKernelV1::match(int x, int y, int j)
{
int error = 0;
int ms = 4;
int c = diff(x, y, x + j, y),
l = 0, r = 0, t = 0, b = 0;
error = c;
for (int i = 1; i <= ms; i++) {
l += diff(x - i, y, x + j - i, y);
r += diff(x + i, y, x + j + i, y);
t += diff(x, y - i, x + j, y - i);
b += diff(x, y + i, x + j, y + i);
}
error += l > r ? r : l;
error += t > b ? b : t;
//error += l + r + b + t;
return error;
}
void SvKernelV1::exec(int line)
{
unsigned int x;
int cursor, closest, tmp;
int minErrorValue, tmpSmoothed, matched;
//int dist;
cursor = 0;
for (x = 0; x < m_result->getWidth(); x++) {
closest = -1; minErrorValue = -1;matched=0;
minErrorValue=-1;
for (int i = 1; i < m_windowSize; i++) {
//dist = (abs(cursor - i));
tmp = match(x, line, i);
tmpSmoothed = tmp;// + (dist) * (1.0/diff);
if (tmpSmoothed < minErrorValue || minErrorValue == -1) {
minErrorValue = tmpSmoothed;
closest = i;
matched = 1;
} else if (tmpSmoothed == minErrorValue) {
if (abs(cursor - i) < abs(cursor - closest)) {
closest = i;
matched++;
}
}
}
if (matched == 1) {
cursor = closest;
}
m_result->putPixel(x, line, getPixelColor(cursor));
}
}

23
svkernelv1.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef SVKERNELV1_H
#define SVKERNELV1_H
#include "svabstractkernel.h"
class SvKernelV1: public SvAbstractKernel
{
protected:
int m_windowSize = 90;
public:
void exec(int line) override;
SvKernelV1();
virtual ~SvKernelV1();
protected:
int getPixelColor(int cursor);
int diff(int lx, int ly, int rx, int ry);
int match(int x, int y, int i);
};
#endif // SVKERNELV1_H

16
svkernelv2.cpp Normal file
View File

@ -0,0 +1,16 @@
#include "svkernelv2.h"
SvKernelV2::SvKernelV2()
{
}
SvKernelV2::~SvKernelV2()
{
}
void SvKernelV2::exec(int line)
{
}

14
svkernelv2.h Normal file
View File

@ -0,0 +1,14 @@
#ifndef SVKERNELV2_H
#define SVKERNELV2_H
#include "svabstractkernel.h"
class SvKernelV2: public SvAbstractKernel
{
public:
SvKernelV2();
virtual ~SvKernelV2();
void exec(int line) override;
};
#endif // SVKERNELV2_H

74
svprocessor.cpp Normal file
View File

@ -0,0 +1,74 @@
#include "svprocessor.h"
SvProcessor::SvProcessor(QObject *parent):
QObject(parent)
{
}
SvProcessor::SvProcessor(SvImage* left, SvImage* right, SvImage* result, int numberOfWorkers, int version)
{
unsigned int i;
if (version == 1) {
m_kernel = new SvKernelV1();
} else if (version == 2) {
m_kernel = new SvKernelV2();
}
m_kernel->setLeftImage(left);
m_kernel->setRightImage(right);
m_kernel->setResultImage(result);
m_numberOfWorkers = numberOfWorkers;
m_workers = new SvWorker[m_numberOfWorkers];
m_threads = new QThread[m_numberOfWorkers];
for (i = 0; i < m_numberOfWorkers; i++) {
m_workers[i].setId(i);
m_workers[i].setKernel(m_kernel);
m_workers[i].moveToThread(&m_threads[i]);
connect(this, &SvProcessor::stopped, &m_workers[i], &SvWorker::stop);
connect(this, &SvProcessor::started, &m_workers[i], &SvWorker::start);
connect(&m_workers[i], &SvWorker::finished, this, &SvProcessor::workerFinished);
}
for (i = 0; i < result->getHeight(); i++) {
m_workers[i].addTask(i % m_numberOfWorkers);
}
}
SvProcessor::~SvProcessor()
{
delete m_kernel;
delete[] m_workers;
}
void SvProcessor::workerFinished(int workerId)
{
Q_UNUSED(workerId)
m_workersFinished++;
if (m_workersFinished == m_numberOfWorkers) {
emit finished(m_startTime - 0);
}
}
void SvProcessor::start()
{
unsigned int i;
m_startTime = 0;
m_workersFinished = 0;
for (i = 0; i < m_numberOfWorkers; i++) {
m_threads[i].start();
}
emit started();
}
void SvProcessor::stop()
{
emit stopped(m_startTime - 0);
}

44
svprocessor.h Normal file
View File

@ -0,0 +1,44 @@
#ifndef SVPROCESSOR_H
#define SVPROCESSOR_H
#include<QObject>
#include<QThread>
#include "svimage.h"
#include "svworker.h"
#include "svabstractkernel.h"
#include "svkernelv1.h"
#include "svkernelv2.h"
class SvProcessor: public QObject
{
Q_OBJECT
protected:
QThread* m_threads;
SvWorker* m_workers;
SvAbstractKernel* m_kernel;
unsigned int m_numberOfWorkers;
unsigned int m_workersFinished;
int m_startTime;
public:
explicit SvProcessor(QObject *parent = 0);
SvProcessor(SvImage *left, SvImage *right, SvImage *result, int numberOfWorkers = 1, int version = 1);
~SvProcessor();
void execute();
protected slots:
void workerFinished(int workerId);
public slots:
void start();
void stop();
signals:
void started();
void finished(int elapsedTime);
void stopped(int elapsedTime);
};
#endif // SVPROCESSOR_H

26
svworker.cpp Normal file
View File

@ -0,0 +1,26 @@
#include "svworker.h"
SvWorker::SvWorker(QObject *parent) :
QObject(parent)
{
}
SvWorker::SvWorker(SvAbstractKernel* kernel)
{
m_kernel = kernel;
}
void SvWorker::stop()
{
}
void SvWorker::start()
{
for (int i: m_tasks) {
m_kernel->exec(i);
}
emit finished(m_id);
}

36
svworker.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef SVWORKER_H
#define SVWORKER_H
#include <QObject>
#include <QList>
#include "svabstractkernel.h"
#include "svimage.h"
class SvWorker : public QObject
{
Q_OBJECT
protected:
int m_id;
SvAbstractKernel* m_kernel;
QList<unsigned int> m_tasks;
public:
explicit SvWorker(QObject *parent = 0);
SvWorker(SvAbstractKernel* kernel);
void setId(int id) {m_id = id;}
void addTask(int line) {m_tasks << line;}
void setKernel(SvAbstractKernel* kernel) {m_kernel = kernel;}
signals:
void finished(int id);
public slots:
void stop();
void start();
};
#endif // SVWORKER_H