<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                   "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!-- lifted from troff+man by doclifter -->
<refentry id='kltran1'>
<!--  @(#)kltran.1 2001/04/02 NIST -->
<!--  I Image Group -->
<!--  G. T. Candela &amp; Craig I. Watson -->

<refmeta>
<refentrytitle>KLTRAN</refentrytitle>
<manvolnum>1A</manvolnum>
<refmiscinfo class='date'>02 April 2001</refmiscinfo>
<refmiscinfo class='source'>NIST</refmiscinfo>
<refmiscinfo class='manual'>NFIS Reference Manual</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>kltran</refname>
<refpurpose>runs a Karhunen-Loeve transform on a set of vectors.</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
  <command>kltran</command>    
    <arg choice='plain'><replaceable>&lt;vecsfile_in</replaceable></arg>
    <arg choice='opt' rep='repeat'><replaceable>vecsfile_in</replaceable></arg>
    <arg>&gt;</arg>
    <arg choice='plain'><replaceable>&lt;meanfile&gt;&lt;tranmat_file&gt;&lt;nrows_use&gt;&lt;vecsfile_out&gt;&lt;vecsfile_out_desc&gt;&lt;ascii_outfile&gt;&lt;message_freq&gt;</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>


<refsect1 id='description'><title>DESCRIPTION</title>
<para><emphasis remap='B'>Kltran</emphasis>
runs a Karhunen-Loeve transform on a set of vectors and reduces the
dimensionality of the feature vectors using the given basis
set <emphasis remap='I'>tranmat_file</emphasis>.</para>

<para>If several processors are available, it may be possible to save time,
when transforming a large set of vectors.  First, run
several simultaneous instances of kltran, each instance transforming
a subset of the vectors.  Then, use stackms to combine the resulting
output files, in the sense of stacking together the matrices.  See the
stackms man page.</para>
</refsect1>

<refsect1 id='options'><title>OPTIONS</title>
<variablelist remap='TP'>
  <varlistentry>
  <term><emphasis remap='I'>&lt;vecsfile_in[vecsfile_in...]&gt;</emphasis></term>
  <listitem>
<para>Input data file(s) in PCASYS "matrix" format, each consisting of a
block of the vectors that are to be transformed.  The input vectors
are the rows.  All input vectors must have the same number of elements,
so the second dimensions of these files (if more than one file) must
all be equal. (Usually the output of the <emphasis remap='B'>mkoas</emphasis> command.)</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><emphasis remap='I'>&lt;mean file&gt;</emphasis></term>
  <listitem>
<para>Input mean vector that gets subtracted from all the input
feature vectors before using the transform matrix. (Usually
the output of <emphasis remap='B'>meancov</emphasis> command.)</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><emphasis remap='I'>&lt;tranmat_file&gt;</emphasis></term>
  <listitem>
<para>A PCASYS "matrix" file containing a transform matrix, some of whose
rows are to be used (see next argument).  The second dimension of
the transform matrix must equal the second dimension of the file(s)
of input vectors. (Usually the output of the <emphasis remap='B'>eva_evt</emphasis> or
<emphasis remap='B'>mktran</emphasis> commands.)</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><emphasis remap='I'>&lt;nrows_use&gt;</emphasis></term>
  <listitem>
<para>How many (first) rows of the transform matrix are to be used.
This is how many elements each output vector will have.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><emphasis remap='I'>&lt;vecsfile_out&gt;</emphasis></term>
  <listitem>
<para>The output vectors, stacked together as a PCASYS "matrix" file, each
vector being one row of the matrix.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><emphasis remap='I'>&lt;vecsfile_out_desc&gt;</emphasis></term>
  <listitem>
<para>A string to be written into the output file as its description string.
This string can be of any length, but must not contain embedded
newline characters.  If it contains spaces, tabs, or shell
metacharacters that are not to be expanded, then it should be quoted.
To leave the description empty, use '' (two single quotes, i.e.
single-quoted empty string).  To let kltran make a description
(indicating that kltran was used, and listing the names of the
file(s) of input vectors and of the transform matrix file), use -
(hyphen).</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><emphasis remap='I'>&lt;ascii_outfile&gt;</emphasis></term>
  <listitem>
<para>If y, makes an ascii output file; if n, binary.  Binary is
recommended, unless the output file must be portable across different
byte orders or floating-point formats.</para>
  </listitem>
  </varlistentry>
  <varlistentry>
  <term><emphasis remap='I'>&lt;message_freq&gt;</emphasis></term>
  <listitem>
<para>If a positive integer, then every this many vectors through each input
file kltran writes a progress message to the standard output.  If
zero, no messages.</para>
  </listitem>
  </varlistentry>
</variablelist>
</refsect1>

<refsect1 id='examples'><title>EXAMPLE(S)</title>
<para>From <emphasis remap='I'>test/pcasys/execs/kltran/kltran.src</emphasis>:</para>

<!-- .RS -->
<para><emphasis remap='B'>% kltran ../mkoas/sv10.oas ../meancov/fv1-9.men ../eva_evt/fv1-9.evt</emphasis>
<emphasis remap='B'>128 sv10.kls - n 100</emphasis>
<!-- .br -->
Does transformation using a eigen-vector set made by the
<emphasis remap='B'>eva_evt</emphasis> command.</para>
</refsect1>

<refsect1 id='see_also'><title>SEE ALSO</title>
<para>lintran (1A), asc2bin (1A), bin2asc (1A), eva_evt (1A), mkoas (1A),
mktran (1A), stackms (1A)</para>

</refsect1>

<refsect1 id='author'><title>AUTHOR</title>
<para>NIST/ITL/DIV894/Image Group</para>
</refsect1>
</refentry>

