Computer Vision News - October 2016
LiveCV (developed by Dinu SV ) is a computer vision coding tool enabling quick prototyping of computer vision algorithms while seeing results update live as soon as the code changes. The aim of LiveCV is to simplify the way people learn, configure and interact with computer vision algorithms . LiveCV runs on both Linux and Windows. Portable stand-alone (i.e. no installation is required) and source code versions are available. For download, installation and instructions see here . At its core, LiveCV uses three main technologies: OpenCV for the algorithms, QML for the programming language and QT for the display and the user interface (UI). The Qt Meta Language (QML) The QML (Qt Meta Language) is a user interface markup language. It is a JSON- like declarative language aiming at designing UI applications. QML represents a tree of elements which can be integrated to create UI ranging from simple buttons and sliders, to complete Internet-enabled programs. QML uses the JavaScript runtime V4 engine and Qt Quick for the scene graph-based UI framework. In QML, objects are specified by their type, followed by a pair of brackets. Object types always begin with a capital letter. Programming in LiveCV is viewed as a pipeline: ‘Read-image’ -> ‘processing it’…. -> ‘observing the results’. Let’s see a first example, the code snippets below read an image and blur it with a Gaussian filter. 10 Computer Vision News Tool LiveCV Tool In the code on the left, there are three objects: a Row and its two children, an ImRead and GaussianBlur. Each object could have a special unique property called an id. Id enables the object to be referred to by other objects. Between braces, information and properties about the object can be specified; properties are specified as pairs <property>:<value>. For example, ImRead has a property id and a file specifying the file name to be read. In addition, objects can be linked between themselves through their inputs and outputs. This is done by the property binding. The ‘property binding’ specifies the value of a property in a declarative way. The property value is automatically updated if the other properties or data values change. For example, GaussianBlur has a property ‘input’ which is bound to the ImRead. As mentioned, LiveCV wrappers OpenCV function. Thus, most of the documentation about the function, their usages and parameters can be found in the original OpenCV documentation. import lcvcore 1.0 import lcvimgproc 1.0 Row{ ImRead{ id : src file : '/.image.jpg' } GaussianBlur { Input: src.output ksize: “21x21” sigmaX : 5 sigmaY: 5 } }
Made with FlippingBook
RkJQdWJsaXNoZXIy NTc3NzU=