SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files
Xenomorph V 0.6 - 16th Jul. 2004           Mail: kraemer@subsymbolics.com
                                           WWW:  xenomorph.sourceforge.net

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


INSTALL

This package should contain a x86 version of Xenomorph, built with GCC 3.2 on SuSE Linux 8.1.
If your system does not like the executable, you will have to compile your own. You will need Trolltech QT 3.x for this. It is available from www.trolltech.com. However, there are also commercial versions of QT3.x for Windows and Apple OSX. In order to get Xenomorph running, it needs multithreading support (qt-mt library) which is already enabled in the binary versions for OSX and Windows. You can also use the QT development version delivered by your System's vendor. If you are using GCC 3.x, this is highly recommended, since the standard source of QT3 does not compile with this compiler.

ATTENTION: Xenomorph versions 0.1 to 0.5 did not compile with GCC3. Since version 0.51, it should work with all GCC compilers.

COMPILING QT3

!!!! This will most likely not work with GCC 3.x. In that case, use the QT development system from your system's CD/DVD until Trolltech delivers a GCC3 version.
To compile QT3/X11 on UNIX, do the following: Get the QT3 development toolkit from www.trolltech.com. Unpack the file, set $QTDIR to the directory Set $QMAKESPEC to $QTDIR/mkspecs/linux-g++ (if you are on Linux and GCC is available) or to the corresponding platform/compiler directory Execute './configure -thread' to build the Makefile for multithreading-QT Start 'make' and go for a Coffee
You don't need to install QT on your system, so no need for 'make install'.

Define the QT environment

The QT environment is built with $QTDIR and $QMAKESPEC defining QT's path, and the system's type and compiler. It makes sens to include this settings somewhere where they are executed, for instance in $HOME/.bashrc The following settings are taken from my SuSE Linux 8.1 release, containing QT 3.0.5 and GNU C/C++

  • You need to set $QTDIR to you system's QT directory: export QTDIR=/usr/lib/qt-3.0.5/
  • QT needs to know what System/Compiler you are using. For instance, on Linux: export QMAKESPEC=$QTDIR/mkspecs/linux-g++ This is a directory containing the Makefile settings. It makes sense to modify the code optimization by editing $QMAKESPEC/qmake.conf and changing -O2 to -O4
  • Then include $QTDIR/bin in $PATH export PATH=$QTDIR/bin:$PATH
  • The shared QT libraries should reside in $LD_LIBRARY_PATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
  • Extend the INCLUDEPATH: export INCLUDEPATH=$QTDIR/include:$INCLUDEPATH

COMPILING Xenomorph

Go into the xenomorph directory
Run ./configure or type 'qmake -o Makefile xenomorph.pro' In case of a X11 build, you are done now, just start make and then ./install


The remaining part of this section is just for the QT/Embedded build. The only reason to do this is to have a version for a PDA, nobody uses QT/E on desktops.
  • The linker needs libqte-mt instead of libqt-mt, so change this in the LIBS section of the Makefile: -lqte-mt
  • Extend the C/CXXFLAGS by -DQWS and -fno-rtti,
  • Remove all X11 links and inclusions from the Makefile.

ATTENTION: If you are building a QT/EMBEDDED version, don't start xenomorph from X11, it may corrupt your display completely. Start by typing 'make' - It should be done really fast - now start ./install - you're done now

You need a running framebuffer.
* On Linux, this is done with the vga=xxx setting on the lilo loading prompt If you change it in lilo.conf, be sure to have an alternative setting WITHOUT framebuffer since if the framebuffer fails, you may be locked out of the system. After the next reboot, the Framebuffer Penguin should display on the text screen, otherwise something went wrong, maybe you will have to compile a new kernel. * You will also need a setting for $QWS_MOUSE_PROTO. MouseMan is a good one for USB mouses, PS/2 mouses are used by default.
Kill GPM if it runs, since it will corrupt the graphics. In any case, don't start the application from X11, this may corrupt your display If it is the first framebuffer application on your system, it needs to run the QWS server. Do this by ./xenomorph -qws

That's all. If something does not work, please mail to: ewald72@yahoo.com

INSTALLATION

Just run ./install
Or do it manually: Copy xenomorph (the executable) to a directory inside of your path. Now copy the .KERNELS subdirectory to your home directory: cp -r .KERNELS $HOME

If you had xenomorph installed before on your system, it could make sense to remove the $HOME/.KERNELS directory before installing. It contains the filter kernel descriptions and could cause problems if later versions of xenomorph re-organize the subdirectory hierarchy.

That's all. Xenomorph will run without external filters if it is not able to find the .KERNELS directory. It won't be very useful this way.

KNOWN PROBLEMS:

In most cases, if a compilation does not work, it is because of one of three reasons: - QT3 does not compile with the GNU C++ compiler version 3.x - in this case, use the binary QT version delivered with your system. - QT3 is not compiled for multithreading support. You need libqt-mt, not libqt Most vendor-supplied QT version contain libqt-mt. If QT was built by yourself, you will have to recompile with './configure -thread' and starting make - You have installed the QT runtime environment, but not the development system. This means the tools like qmake and the header-files are missing. Your system's CD/DVD will most likely contain the complete development environment. - The environment variables are not properly installed - check $QTDIR, $PATH, $QMAKESPEC $LD_LIBRARY_PATH and $INCLUDEPATH

VERSION 0.2 CHANGES

  • A bug in the colour scaling algorithm was removed.
  • Automatic colour scaling included. It scales the rgb ranges to the grayvalue-ranges.
  • The 'Open new display' checkbox allows to filter without opening a new window.
  • The filter language was extended. The statements 'V' and 'K' are deprecated (xenomorph still understands them). Use the new statement 'P' instead: P 0.5 0 0 <KERNEL_NAME> 0 0 0 1 This statement means to multiply pixel 0 0 of the input image with pixels 0 0 and 0 1 of the the filter output of <KERNEL_NAME> (used on the same image). The whole product is weighted with 0.5. This allows 'filter on filter' definitions.
  • Every filter now has three caches (for red green blue). This allows filter-on-filter building without the fear of inefficiency due to pixel recalculations.

VERSION 0.3 CHANGES

  • It is possible to use Xenomorph with a single-button mouse (Apple OSX)
  • Soft morphology operators (dilation with rank 0.75 and erosion with rank 0.25) and their high-lefel operations (soft opening, closing and edge extraction) Soft morphology operators are slower than the 'hard' ones because they require real sorting (the hard operators use min/max). However, the soft operators are MUCH better. For instance, take a look at the differences between hard and soft opening or closing.
  • The rank-selection has been optimized to use a weighted sum if the selection does not map exactly to an integer. For instance, take a look at the sequence 0 1 1 and rank 0.25 Xenomorph 0.1 & 0.2 would deliver zero Xenomorph 0.3 delivers 0.5 Please note that all filters delivered with versions 0.1 and 0.2 use rank 0, 0.5 or 1 with non-even sequences (3x3, 9x9, etc) so that this difference does not have any effect on existent filters. Version 0.3 provides soft-morphology operators which use rank 0.25 (soft erosion) and 0.75 (soft dilation). Please use this filters with version 0.3 only.
  • Morphology operations with rank from ]0;1[ will be slightly faster in version 0.3. Dilation and erosion will have the same speed.

VERSION 0.4 CHANGES

  • A bug in the filter cache system was removed. In versions 0.2 and 0.3 this bug caused artefacts at the image borders. They were visible when using the OPENING operator.
  • The caches have been extended - Every filter takes a many caches as needed. They are cleared after the filtering is done. With this setting it is possible to use the same filter many times in recursive definitions.
  • The filter menu is arranged in a more lucid way
  • Faster FP<->INT conversion

VERSION 0.5 CHANGES

  • The filter menu can be teared off. That means you can 'copy' a menu or a submenu to an external window. For instance, it makes sense to tear off the 'Soft Morphology' submenu because it's on a very deep branch of the menu tree.

VERSION 0.51 CHANGES

  • This is just a patched version of 0.5 to compile with GCC 3.x - nothing changed

VERSION 0.6 CHANGES

  • Removed the 'deprecated' compiler messages
  • Hidden filters support
  • Rank filters


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.