Table of Contents

SQL

This logic can be used to perform database related operations on header keys of one or two stacks of images to filter them for certain criteria.

Usage

In order to filter a stack of images SQL syntax can be applied. SQL is a powerful language used to filter large datasets. To learn more about SQL please see https://www.sqlite.org/docs.html for detailed information.

Example

SELECT *, FROM t0

SELECT *,classID as clusterMember FROM t0

SELECT *, (referenceData -120) as referenceData FROM t0

SELECT DISTINCT t0.*, COUNT(t1.referenceData) as counter FROM t0, t1 WHERE t1.referenceData == t0.imageID GROUP BY t1.referenceData

SELECT * FROM t0 where img%2=0

SELECT sum(imageID)/count(imageID) as sum FROM t0 where imageID >10 and imageID < 20

SELECT *, COUNT(croppedFromFile) FROM t0 GROUP BY croppedFromFile

SELECT * FROM t0 WHERE eulerBeta = 130 AND eulerGamma BETWEEN 190 AND 195

SELECT *, (180-eulerBeta) AS eulerBeta, CASE WHEN eulerGamma >= 180 THEN eulerGamma-180 ELSE eulerGamma+180 END AS eulerGamma FROM t0

Parameters and I/O

Parameters Description
Statement This is the actual SQL statement used to filter the input(s)
Write 1D images Writes a 1D image for every header key. Every value in the output image is the header value of one particular image of the input dataset.
Input Description
Input table t0 Stack of input images
Input table t1 Stack of input images
Output Description
Output result Stack of output images
New/Changed Header Values Description

New or changed header values depend on how this logic is used, since header values can be added or modified by this logic.

Concept

This module creates a database which is basically the union of all input header values. Then the given SQL statement is applied onto this database and the resulting header keys (with the corresponding images) are written to the output.