Added support for NChannelImage and ExtendToNChannel


Sorry for all the previous open/close pull requests. This is the only merge to look at.

* As for patterngenerator  .generator, the generator is extracted according
to the object, in fact it checks for the existence of
"get_current_generator" and others, to pick the "bottom-most" which has
"channel_data".

* setattr stuff: it was already there. Th self.correlate part is a bit
hacky by itself, maybe we could put a warning comment to state that it's a
feature that might be removed in the future?

* Agree on ExtendToNChannel, though it explains its function pretty well.
Any suggestions on different naming?
   "MultiChannel" is a bit too generic in my opinion. NChannelImage already
exist and has a similar meaning to "MultiChannel".  Maybe
NChannelPatternGenerator?

* FeatureColorConverter:  you're right. It was originally
TopoColorConverter, and I renamed it Feature when it was moved to
FeatureMapper. Agreed on ColorConverter.


* Important: mentioning vision in Imagen. The generic color conversion
object is actually ColorSpace, ColorConverter handles specific processing
useful for vision, as it wraps ColorSpace to support images, receptors and
higher-level analysis.
It *could* be possible to move this part (AND the default created object)
to Topographica, but
  1) it would be a bit messy
  2) we'd have the same problem as we had before: where should we put such
code?
It is possible to remove any comments about the image/receptor/etc, and
change the names as JL suggested, however this would make the class *much*
less clear to understand. :/





On Fri, Jul 11, 2014 at 4:15 PM, J.L Stevens <notifications@github.com>
wrote:

> In imagen/image.py:
>
> >          return self._image
> > +
> > +
> > +    def post_process_channels(self,p,gray):
> > +        if( self.apply_hue_jitter ):
> > +            im2pg = color_conversion.image2receptors
> > +            pg2analysis = color_conversion.receptors2analysis
> > +            analysis2pg = color_conversion.analysis2receptors
> > +            jitterfn = color_conversion.jitter_hue
> > +            satfn = color_conversion.multiply_sat
> > +
>
> Not a fan of this pointless aliasing. Either fully qualify the method you
> want...or you could modify the import to something like:
>
>
> from .colorspaces import color_conversion as colconvert
>
> To help shorten it.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/ioam/imagen/pull/29/files#r14825946>.
>