Welcome to Software Laboratory of Antillia.com.
    Future Windows and Linux Programming

  OZ++ Class Library
  Home     OZ++ Classes     OZ++ Samples  

1 Download OZ++
The latest OZ++ library for Linux and sample programs can be downloaded.


  • OZ++ Class Library 1.0.11 for Linux (oz++1.0.11.zip: #2016.04.25)

  • OZ++ Class Library 2.0.31 for Motif, OpenGL and OpenCV (oz++2.0.31.zip: #2017.06.14)

  • In oz++2.0.25, we updated sample programs to use a smart pointer class.
    In oz++2.0.26, we added OpenGL sample programs to render proportional shapes.
    In oz++2.0.27, we added some OpenGL sample programs: MatrializedShape, StarSystemModel, TexturedCylinder andTexturedSphere.
    In oz++2.0.28, we added some C++ classes to support Motif-based UI for OpenCV, and some sample programs of OpenCV.
    In oz++2.0.29, we updated C++ classes to support Motif-based UI for OpenCV, and added some feature detection programs of OpenCV.
    In oz++2.0.30, we added FileSystemBrowser class on Motif, and added some feature detection, matching programs of OpenCV.
    In oz++2.0.31, we have updated ScrolledWindow class and added ColoredLabel, PulldownColorListView classes on Motif, and added some corner, circle and line detection programs of OpenCV.

    These libaries contain both a set of C++ class header files and a lot of sample programs of OZ++.

    2 What is OZ++?
    2.1 OZ++ 1.0
     OZ++ 1.0 is an experimental and elementary C++ class library for Linux. It is based on author's SOL9 C++ class library for Windows. OZ++ 1.0 has no GUI classes,. We provide a set of C++ class header files and a lot of sample programs for those libaries.
     On OZ++ we implemented all the member functions inside the C++ classes. This is not a conventional coding style of C++ of separating implementation and interface. But OZ++ coding style has one point which enables a rapid prototyping of writing and testing C++ prograqms quickly. It may (or may not) be useful for various experimentation projects.
     Historically, the author started to develop SOL9 C++ class library for Windows about a few years ago, based on SOL++2000 for Windows. The class hierarchy and class names of OZ++ are quite similar to those of SOL9. On OZ++ We have introduced a namespace 'OZ' to avoid the collisions of classes or type names in GNU g++ environment.
     We developed this OZ++ library by using g++ 4.8.4 on Ubuntu 14.04, but didn't test it on other g++ versions or Linux distributions.

     In the latest OZ++ 1.0.5, we updated some experimental C++ classes(Netlink++ 1.0.3) for Linux netlink, which seems to be a slightly complicated C library, but a very interesting material from an educational or practical point of view to study C++ class implementation for the library. Netlink++ may help you write programs to communicate with the Linux kernel based on the netlink.
     In the version OZ++ 1.0.6, we updated some experimental C++ classes(Netlink++ 1.0.4) for Linux netlink not to use OZ::String class.

     In the version OZ++ 1.0.7 (2015/05/18), we added some experimental C++ classes for signal, inotify and fanotify of Linux.
     In the version OZ++ 1.0.8 (2015/05/30), we added some experimental C++ classes for clock, epoll, eventfd, resource, signalfd, and timerfd of Linux.
     In the version OZ++ 1.0.9 (2015/06/10), we updated C++ classes for epoll, inotify and fanotify of Linux.
     In the version OZ++ 1.0.10 (2016/04/07), we updated C++ classes for glob, regex, wordex, sysinfo, sysconf, statvfs and statfs of Linux.
     In the latest version OZ++ 1.0.11 (2016/04/25), we have updated C++ classes for regex, socket, netdb of Linux.



    2.2 OZ++ 2.0
    2.2.1 OZ++ 2.0
     OZ++ 2.0 is an extension of OZ++ 1.0 to support GUI classes for Open Motif on Linux. The extension part for Motif (Motif++) is based on author's Oz++ library developed by AT&T C++ compiler on a UNIX system. (See also: Motif C++ Programming: Design and Implementation of Oz++; ISBN-13: 978-4833741019)
     Open Motif version 2.3.7 has been released on March 2017 ( Motif released as open source software under LGPL v2.1). If you would like to know Motif version on your system, it is helpfull to find XmVERSION_STRING in the file "/usr/include/Xm/Xm.h". For example, you can see the following line:

    #define XmVERSION_STRING "@(#)Motif Version 2.3.7"

     In the latest OZ++2.0.28 library, we have been using Motif 2.3.7.

     Motif++ is a set of thin wrapper C++ classes for Motif widgets. On Motif++ we implemented all the member functions inside the C++ classes, and introduced a namespace 'OZ'.

    Schematically, you can imagine that:

    OZ++2.0 = (OZ++1.0) + (Motif++) + (OpenGL++) + (Xft++) + (OpenCV++)


    We provide a set of C++ class header files and a lot of sample programs for this library.

    In the version OZ++2.0.23, we have added C++ classes to support OpenGL Shader Language of GLEW to avoid falling into chaos of devine OpenGL APIs, though we are not enthusiastic followers of OpenGL.
    In the latest OZ++2.0.28, we have added some C++ classes to support Motif-based GUI for OpenCV 2.4.8 OpenCV; we have added OpenCVImageView, OpenCVMainView, OpenCVApplication to 'include/oz++/opencv' folder.

    Furthermore, we have updated FileOpenDialog, FolderOpenDialog and FolderSelectionDialog to use Xpm library.

    2.2.2 Development environment
      Although far behind others, I have upgraded a development environment of OZ++ from Ubuntu 12.10 to Ubuntu 14.04 LTS (2015/04/22).
    After an installation the Ubuntu 14.04 , I have added some development packages to the system in the following way, on the console.

    # Update and upgrade
    sudo apt-get update
    sudo apt-get upgrade

    # g++
    sudo apt-get install g++

    # X11, Xt
    sudo apt-get install libX11-dev
    sudo apt-get install libXt-dev

    # OpenGL (Mesa) (See: Setting up an OpenGL)
    sudo apt-get install mesa-common-dev
    sudo apt-get install freeglut3-dev

    # Fontconfig and Xft
    sudo apt-get install libfontconfig-dev
    sudo apt-get install libxft-dev
    On the latest Motif 2.3.7, we have built the library from the source code Motif.
    We have also installed the latest GLEW 2.0.0, and developed our C++ library and sample programs by using it.

    2.2.3 History
    Please see the page OZ++ Class Library History



    2.3 OZ++ Features

    1. OZ++ is basically single inheritance oriented.
    2. OZ++ classes have been implemented in C++ header files using inline member functions.
    3. OZ++ applications only have to include OZ++ class header files, and they can be compiled without linking any OZ++ specific shared or static library.
    4. OZ++ will support multiple charsets of ASCII(char) and UNICODE(wchar_t).

    Note: Current OZ++ version is not thread safe. For example, the instances of LinkedList class cannot be safely accessed by multiple threads.



    2 How to install OZ++
    You download the zip file oz++.zip, and unzip it on your working directory.program. For example, by unzipping on a directory ~/work, you get the following directories:

    2.1 OZ++ 1.0
    ~/work/oz++/iclude
    , which includes all C++ header files for OZ++ 1.0.

    ~/work/oz++/netlink
    , which includes some sample program files for netlink++ and build.sh shell script to compile them.

    ~/work/oz++/samples
    , which includes all sample program files for OZ++ and build.sh shell script to compile them.

    2.2 OZ++ 2.0
    ~/work/oz++/include
    , which includes all C++ header files for OZ++ 1.0 and Motif++.

    ~/work/oz++/netlink
    , which includes some sample program files for netlink++ and build.sh shell script to compile them.

    ~/work/oz++/samples
    , which includes all sample program files for OZ++ 1.0 and build.sh shell script to compile them.

    ~/work/oz++/motif
    , which includes all sample program files for Motif++ and build.sh shell script to compile them.

    ~/work/oz++/opengl
    , which includes all sample program files for OpenGL and build.sh shell script to compile them.

    ~/work/oz++/opengl2
    , which includes all sample program files for OpenGL 2.0 and build.sh shell script to compile them.

    ~/work/oz++/xft
    , which includes some sample program files for xft++ and build.sh shell script to compile them.


    ~/work/oz++/opencv
    , which includes some sample program files for OpenCV and build.sh shell script to compile them.


    3 How to write OZ++ applications.

     We show some simple and elementary application programs of OZ++, Netlink++ and Motif++, which may be helpful to understand OZ++ programming style. For more examples, please see OZ++ samples


    3.1.1 Hello world

    3.2.1 InterfaceAddrRequest

    3.2.2 RoutingTableNewRequest

    3.2.3 IPAddressMonitor

    3.3.1 Label

    3.3.2 Pixelmap and EventHandler

    3.3.3 ApplicationView and Callback

    3.3.4 TreeView

    3.3.5 XFT

    3.3.6 Is Motif a sleeping beauty?

    3.3.7 FTFontPreview

    3.3.8_FileListView

    3.3.9 FileIconBox

    3.3.10 IconBar

    3.3.11 IPAddressWatcher

    3.3.12 Polygon

    3.3.13 ImageViewer

    3.3.14 Texture

    3.3.15 InodeWatcher

    3.3.16 LightedTorus

    3.3.17 MultiJPGTexturedCubeRotationByTimerThread

    3.3.18 MultiColoredTrianglShader

    3.3.19 BufferedColoredRegularIcosahedron

    3.3.20 SphereWithColorEyeLightPositioner

    3.3.21 MaterializedTorusesRotationByTimerThread

    3.3.22 TexturedSphereRotationByKeyInput

    3.3.23 StarSystemModel

    3.3.24 FileSystemBrowser

    3.3.25 ImageBlur

    3.3.26 ImageSharpen

    3.3.27 ObjectDetector


    3.1 OZ++ 1.0
      1.1 Hello world
    On OZ++ application you simply include OZ++ class header files as your needs, as shown below. You also have to write your own main function of the C/C++ program entry point.




      
    3.1.2 Thread and MessageQueue

     This is an example to write data to POSIX message queue by using OZ++ Thread class.
    Note:
    1. Define your own C++ class (Writer) as a subclass of Thread class.
    2. Add a member variable of MessageQueue class which can be used to send data to other process.
    3. Define a contructor to initialize the above member variable.
    4. Define a run method to send your data to other process through MessageQueue.
    5. In main function, create an instance of your thread class(Writer), and call start and wait methods for the instance.

    >

    3.2 Netlink++
      3.2.1 InterfaceAddrRequest
     On Netlink++ application you simply include OZ++ netlink class header files as your needs, as shown below. You also have to write your own main function of the C/C++ program entry point.
    This is an example to send a NetlinkRequest for the structure ifaddrmsg to get IPv4 interface addresses.
    Note:
    1. Define your own netlink request C++ class.
    2. Add a member variable of NetlinkRequest<T> which includes a netlink message header and a requst body of type T.
    3. Add a member variable of SocketNetlink which can be used as a communication channel to the kernel.
    4. Define a contructor to initialize the above two member variables.
    5. Define a send method to send your netlink request to the kernel through the SocketNetlink.
    6. Define a recv method to receive a reply from the kernel through the SocketNetlink.
    7. In main function, create an instance of your request class, and call the send and recv mothods for the instance.


      3.2.2 RoutingTableNewRequest
    This is an example to send a NetlinkRequest for the structure rtmsg to register a new route.
    Note:
    1. Define your own netlink request C++ class.
    2. Add a member variable of NetlinkRouteAttributeRequest<T> which includes a netlink message header and a requst body of type T.
    3. Add a member variable of SocketNetlink which can be used as a communication channel to the kernel.
    4. Add a member variable of NetlinkReply<T> which includes a netlink message header and ack data from the kernel.
    5. Define a contructor to initialize the above two member variables.
    6. Define a send method to send your netlink request to the kernel through the SocketNetlink.
    7. Define a recv method to receive a reply from the kernel through the SocketNetlink.
    8. In main function, create an instance of your request class, and call the send and recv mothods for the instance.



      3.2.3 IPAddressMonitor
    This is an example to monitor changes of InterfaceAddresses for IPv4 and IPv6.

    Note:
    1. Define your own netlink monitor C++ class.
    2. Add a member variable for groups to monitor.
    3. Add a member variable of SocketNetlink which can be used as a communication channel to the kernel.
    4. Add a member variable of NetlinkReply<T> which includes a netlink message header and ack data from the kernel.
    5. Define a contructor to initialize the group member variable.
    6. Define a bind method to communicate with the kernel through the SocketNetlink.
    7. Define a recv method to receive a notification from the kernel through the SocketNetlink.
    8. In main function, create an instance of your monitor class, and call bind and recv mothods for the instance.


    3.3 Motif++, Xft++, and OpenGL++
      3.3.1 Label
     On Motif++ application for OZ++ 2.0, you simply include Motif++ class header files for your requirement, as shown below.
    Note:
    1. Define your own top level application view class(MainView) to be a subclass of OZ::ApplicationView class.
    2. In main function, create an instance of OZ::Application class, and an instance of your own application view class(MainView).
    3. Call realize method of the instance of the application view.
    4. Call run method of the instance of Application to enter an event loop.




      3.3.2 Pixelmap and EventHandler
     Tis is an example to create a pixelmap and draw colored points on it, and copy the pixelmap onto a window by an eventhandler for ExposureMask.
    Note:
    1. Define your own top level application view class(MainView) to be a subclass of OZ::ApplicationView class.
    2. Define a member varialbe for Pixelmap class to store colored points.
    3. Define a member variable for DC class which can be used as a device(graphics) context for the pixelmap.
    4. Define a constructor to intialize the above member variables.
    5. Define a draw eventhandler method to copy the pixelmap to your window.
    6. In main funcition, create create an instance of OZ::Application class, and an instance of your own application view class(MainView).
    7. Call realize method of the instance of the application view.
    8. Call run method of the instance of Application to enter an event loop.



      3.3.3 ApplicationView and Callback
     On Motif++ application for OZ++ 2.0, you can write easily a typical application window with a menubar and pulldown menus, as shown below.
    This is an example to select a text file from a fileDialog, and to display the content of the selected file in a scrolledText window.
    Note:
    1. Define your own top level application view class(MainView) to be a subclass of OZ::ApplicationView class.
    2. Define member vairlables for MainWindow, MenuBar, PulldownMenu, ScrolledTextm, and FileDialog.
    3. Define a constructor to create the instances of the above classes, and register callbacks to a menu and a file selection.
    4. Define calllback method(fileMenu) for a menu selection, and callback method (open) for a file selection in a fileDialog.
    5. In main function, create an instance of your OZ::Application class, and an instance of your own application view class(MainView).
    6. Call realize method of the instance of the application view.
    7. Call run method of the instance of Application to enter an event loop.



      3.3.4 TreeView
     On Motif++, you can write a TreeView application based on xmTreeWidgetClass (Open Motif 2.2 and later) as shown below.
    This is an example to display a tree of some subnodes of PushButtons or Labels.
    Note:
    1. Define your own top level application view class(MainView) to be a subclass of OZ::ApplicationView class.
    2. Define a member vairlable for Tree class.
    3. Define a constructor to create the instances of Tree, and add nodes (PushButtons or Labels) to the tree instance.
    4. Define calllback method(pushed) for the PushButtons on the nodes.
    5. In main function, create an instance of your OZ::Application class, and an instance of your own application view class(MainView).
    6. Call realize method of the instance of the application view.
    7. Call run method of the instance of Application to enter an event loop.


      3.3.5 XFT
     As you know, Open Motif 2.3 (Appendix G - New Features in Motif 2.3) and later support the free type fonts Xft (X free type).
    To use XFT fonts on Motif, you only have to write some XmRenderTable specific resources into .Xdefaults file as shown below.
    Please note that the *fontTye is a mandatory item and must take FONT_IS_XFT for Xft fonts.
    Fortunately, you don't need to change your already-written C/C++ source files for using Xft.




      3.3.6 Is Motif a sleeping beauty?
      On Motif++, we have some experimental C++ classes(Xft++) to use FontConfig and Xft on Motif.
    This program ('Is Motif a sleeping beauty?') is an example to display UTF-8 strings by using FTFont (FreeTypeFont) and FTFlatButton (FreeTypeFlatButton) classes of Xft++.



      3.3.7 FTFontPreview
     To see a list of known Fontconfig fonts, you can use fc-list command in Fontconfig package.
    Using an output of fc-list, we can implement a font-preview C++ class to browse X11 Fontconfig fonts.
    This is an example to display available fonts by FTFontPreview (FreeTypeFontPreview) of xft++.



      3.3.8_FileListView
     Open Motif 2.3 (Appendix G - New Features in Motif 2.3) and later give programmers the ability to show pixmaps and label strings simultaneously in Labels or Buttons.
    On OZ++, to create an instance of Label with a pixmap and a string label, you have to specify XmPIXMAP_AND_STRING for XmNlalbelType as shown below:



      3.3.9 FileIconBox
     Open Motif 2.3 and later provide some "Contributed Widgets" such as XmIconButton and XmIconBox classes, which seem to be slightly similar to XmPushButton extension with a pixmap and XmButtonBox respectively. The XmIconButton can be used to show an icon (pixmap) and a label string simultaneously in a button.
    On OZ++, to create an instance of IconButton, you have to specify XmNlalbelString and XmNpixmap resources as shown below:



      3.3.10 IconBar
    The XmIconButton in Open Motif 2.3 can also be used as a menubar by arranging the buttons to one line on a top region in ApplicationView .
    This is an example to display a menu for some file editing operations by using IconBar class (motif++ 1.0.5).
    Please note that to add a button to the IconBar, we specify an icon filename to XmNiconFileName which is an OZ++ specific resource.



      3.3.11 IPAddressWatcher
     On the latest Motif++ 1.0.6, we have introduced a very primitve Model-View update model on View class. By using the model, we can easily write a mixed program of an OZ++ Thread class and Motif++ GUI classes.
     Please note that the libraries of Open Motif 2.1 (and later) are thread-safe(See: Open Motif Overview).
     This is an example to display some IPAddress information retrieved by IPAddressWatcher thread on TableView.
    This sample program is built on two classes IPAddressWatcher(Thread), and MainView(ApplicationView).



      3.3.12 Polygon
     On the latest Motif++ 1.0.7, we have implemented some experimental C++ classes (OpenGL++) for OpenGL.
     To display various OpenGL graphics objects on X11/Motif windows, we have introduced OpenGLView class based on Canvas class of the Motif++.
     This is an example to display a polygon on SimpleView class derived from OpenGLView.



      3.3.13 ImageViewer
     Although you may not be so interested in an image processing on X11/Motif, Open Motif 2.3 has added support of PNG and JPEG images (Appendix G - New Features in Motif 2.3). It will enable us to create easily better imaged widgets such as XmLabel and XmPushButton which have XmNlabelPixmap or XmNsomethingPixmap resources as shown below.



      3.3.14 Texture
     The advanced image support of Motif is also helpful to create an OpenGL texture from an image file of PNG or JPEG.
     This is an example to create an OpenGL texture from a pixmap loaded by using OZ::PixmapFile class which is implemented based on XmGetPixmap API of Motif 2.3.



      
    3.3.15 InodeWatcher
     Linux provides some APIs (inotify_*) to monitor files(inodes). In OZ++ 2.0.15, we have added OZ::NonblockingInodeWatcher class to read inode change notifications from an inotify file descriptor of IN_NOBLOCK mode.
     This is an example to watch changes of inodes of Linux system by using OZ::NonblockingInodeWatcher class.



      3.3.16 LightedTorus
      We have been using FreeGLUT which is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library.
    GLUT(FreeGULT) is a window system independent library, and very useful to develop simple and portable(cross-platform) OpenGL programs.
      This is an example to draw two toruses by using glutSolidTorus and glutWireTorus APIs of GLUT library.



      3.3.17 MultiJPGTexturedCubeRotationByTimerThread
      We have C++ class OpenGLMultiTexturedCube to render a cube textured by multiple JPG or PNG image files.
     This is a simple sample program based on that class, and six JPG files for the cube fases.
     In this program the cube is rotated around y-axis by RenderingTimer Thead.



      3.3.18 MultiColoredTrianglShader
      In OZ++2.0.23, we have updated our OpenGL C++ classes to use GLEW in order to create a context-version-dependent context, and to use the features of OpenGL Shader Language.   Currently, the default major version and the minor version for OpenGLContex class are 2 and 1 respectively.
      This is a very simple sample program to use OpenGLProram, OpenGLFragmentShader, and OpenGLVertexShader classes to draw a multicolored triangle. In this program, the sources for FragmentShader and VertexShader are defined in the files of "fragmentShader.glsl" and "vertexShader.glsl" respectively.



      3.3.19 BufferedColoredRegularIcosahedron
      In OZ++2.0.23, we have added new classes OpenGLBufferARB, OpenGLBufferedShapd, OpenGLIndexBufferARB, and OpenGLVertexBufferARB to 'oz++/openglarb/' folder to support GL_ARB_vertex_buffer_object extension in GLEW.
      This is a very simple sample program to draw OpenGLColoredRegularIcosahedron by using those classes.





      3.3.20 SphereWithColorEyeLightPositioner
      In OZ++2.0.24 library, we have added new classes Positioner, ColorPositioner, EyePositioner, LightPositiner, and ColorEyeLightPositioner to 'oz++/motif' folder. Those have been implemented by Motif ScrollBar triplet.
     This is a very simple sample program to draw Sphere by using those classes.



       3.3.21 MaterializedTorusesRotationByTimerThread
      As you know, in OpenGL, there is a glMaterial API to set material properties.
    In the latest sol9.2.0, we have implemented OpenGLMateria class to store material properites:face, ambient, diffuse, specular, emission, shininess.




      3.3.22 TexturedSphereRotationByKeyInput
      In OpenGL, there are some methods to map a texture to a solid sphere.

    1. To use gluSphere and gluQuadricTexture APIs in OpenGL GLU library.
    See Texturing a Sphere.

    2. To write your own code to draw a sphere with texture coordinates.
    See Texture map in solid sphere using GLUT(OpenGL) .

    Please note that you cannot use glutSolidSphere API of OpenGL GLUT library to map a texture on the sphere, because the API doesn't support texture coordinates.
    In the latest OZ++ library, we have implemented OpenGLTexturedSphere class based on the first method.

    The following TexturedSphereRotationByKeyInput is a simple example to draw a textured shpere and rotate it by Left or Rigth keys.

    In this example, we have used the world map of 'world.topo.bathy.200412.3x5400x2700.jpg' file in the following page.
    NASA VISIBLE EARTH
    December, Blue Marble Next Generation w/ Topography and Bathymetry
    Credit: Reto Stockli, NASA Earth Observatory



      3.3.23 StarSystemModel
    In OpenGL, we can draw a simple star system model like our solar system. We assume an imaginary star system which consists of a single sun-like sphere star and some planet-like spheres rotating on circular oribits around the sun star , and furthermore, to avoid confusion, we do not care the light direction and reflection light problem of sun and the planets.




      3.3.24 FileSystemBrowser

    As you know, Motif has an xmFileSelectionBoxWidgetClass to select a file as shown below:



    We have implemented FileBox and FileDialog to use the widget class. Unfortunately, this is not so convenient to browse folders and select files on a whole Linux file system.

    In the latest OZ++ class library, we have implemented a very simple experimental class FileSystemBrowser as a subclass of PopupView, by using the following two components:

    FolderSelectionBox which is a subclass of ScrolledWindow to wrap xmContainerWidgetClass and xmIconGadgetClass of Motif.

    FileListView which is a sublcas of ScrolledWindow to display folders or fileslist.




      3.3.25 ImageBlur

    As you know, OpenCV has some image filter classes and image-blur APIs Smoothing Images such as:

    blur
    GaussianBlur
    medianBlur
    bilateralFilter

    The following MedianBlur program is a simple example to blur an image based on mediaBlur funcition.
    The left pane is an orignal image, and the right pane is a blurred image created by a KernelSize trackbar control.




      3.3.26 ImageSharpen

    As shown in Unsharp masking, Unsharp masking (USM) is one of the image sharpening techniques. It uses a smoothed (blurred), or "unsharp", negative image to create a mask of the original image.
    The following imageSharpening program is a simple image sharpening example based on the USM technique, in which we have used the following two APIs:

    1 GaussinaBlur to create a blurred mask image from an original image.

    2 addWeighted to combine the blurred image and the original image.

    The left pane is an orignal image, and the right pane is a sharpened image created by KernelSize and Sigma trackbar controls.




      3.3.27 ObjectDetector

    One of the most interesting feature of OpenCV is an image recognition or object detection, which is a very important technology in modern computer vision based systems.
    For detail, please see the OpenCV documentation Cascade Classification Haar Feature-based Cascade Classifier for Object Detection.

    In the latest OpenCV version, the following two types of cascade classifiers are available:

  • Harr Feature-based Cascade Classifier

  • LBP(Local binary pattern) Cascade Classifier

  • On these cascade classifiers, please check your OpenCV installed directory, for example, you can find folders including classifier files under the folder "opencv/data/.
    The following ObjectDetector is a simple object detection example.

    1 Select a folder which contains Harr or LBP cascade classifiers by using a folder open dialog which can be popped up by clicking [...] button
    2 Select a cascade classifier xml file in a combobox.
    3 Open a target image file by using a file open dialog which can be popped up by Open menu item.
    4 Click Detect pushbutton.








    Last modified: 14 June 2017

     Last modified: 14 June 2017

    Copyright (c) 2000-2017 Antillia.com ALL RIGHTS RESERVED.