home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il / ilConvImg.z / ilConvImg
Encoding:
Text File  |  2002-10-03  |  13.0 KB  |  265 lines

  1.  
  2.  
  3.  
  4. iiiillllCCCCoooonnnnvvvvIIIImmmmgggg((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllCCCCoooonnnnvvvvIIIImmmmgggg((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllCCCCoooonnnnvvvvIIIImmmmgggg - class to perform image convolution
  10.  
  11. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  12.      ilLink : ilImage : ilCacheImg : ilMemCacheImg : ilOpImg : ilSpatialImg
  13.  
  14. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  15.      #include <il/ilConvImg.h>
  16.  
  17. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.      This class performs a general or separable image convolution with the
  19.      kernel specified.  In addition, an additive bias can be supplied.  The
  20.      additive bias is used as the initial value when accumulating the sum of
  21.      the products (image data*kernel value) for each neighborhood.  The edge
  22.      mode can be specified as described for ilSpatialImg.
  23.  
  24.      The minimum and maximum pixel values, minValue and maxValue, are adjusted
  25.      based on the input minimum and maximum pixel values and the kernel
  26.      weights, if defined.  If the adjusted minimum and maximum pixel values
  27.      are outside the range of values supported by the current data type, then
  28.      the data type is promoted to support the new range of values. This occurs
  29.      only if the data type has not already been explicitly set.
  30.  
  31.      If the data type has not been explicitly set, the minimum and maximum
  32.      pixel values are set to the new adjusted values. The minValue and
  33.      maxValue values can be used, for example, when the results of the
  34.      convolution need to be displayed on a monitor.  The data must be scaled
  35.      to fit the range of values allowed by the display.
  36.  
  37.      This operator can be used to perform sharpening and blurring by using a
  38.      kernel of class ilSharpenKernel or ilSepSharpenKernel as the supplied
  39.      kernel.
  40.  
  41.      DDDDeeeerrrriiiivvvviiiinnnngggg NNNNeeeewwww CCCCllllaaaasssssssseeeessss FFFFrrrroooommmm iiiillllCCCCoooonnnnvvvvIIIImmmmgggg
  42.  
  43.      Because ilConvImg is derived from ilSpatialImg, the member functions
  44.      defined in ilSpatialImg can be used to set the edge mode, kernel and
  45.      bias.  Because ilConvImg implements the convolution, a derived class
  46.      needs only to define a kernel and set the edge mode and bias. In
  47.      addition, a derived class may want to define functions to adjust the size
  48.      of the kernel and the weights of the elements.
  49.  
  50.      The rrrreeeesssseeeettttOOOOpppp(((()))) function can be defined to reset the kernel passed to
  51.      ilConvImg. If defined, however, it hides the version inherited from
  52.      ilConvImg.  Therefore, it must explicitly call ilConvImg's rrrreeeesssseeeettttOOOOpppp(((())))
  53.      function.
  54.  
  55. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  56.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllCCCCoooonnnnvvvvIIIImmmmgggg((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllCCCCoooonnnnvvvvIIIImmmmgggg((((3333))))
  71.  
  72.  
  73.  
  74.           ilConvImg(ilImage* inputImage = NULL, ilKernel* inputKernel = NULL,
  75.                     double biasValue = 0., ilEdgeMode edgeMode = ilPadSrc)
  76.  
  77.  
  78. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  79.      iiiillllCCCCoooonnnnvvvvIIIImmmmgggg(((())))
  80.  
  81.           ilConvImg(ilImage* inputImage, ilKernel* inputKernel = NULL,
  82.                     double biasValue = 0., ilEdgeMode edgeMode = ilPadSrc)
  83.  
  84.  
  85.           The constructor specifies the source image, _i_n_p_u_t_I_m_a_g_e; the kernel
  86.           weights, _i_n_p_u_t_K_e_r_n_e_l; the additive bias, _b_i_a_s_V_a_l_u_e; and the edge
  87.           mode, _e_d_g_e_M_o_d_e.  All of the parameters can be altered using the
  88.           appropriate set function inherited from ilSpatialImg:  sssseeeettttIIIInnnnppppuuuutttt(((()))),
  89.           sssseeeettttKKKKeeeerrrrnnnneeeellll(((()))), sssseeeettttBBBBiiiiaaaassss(((()))), and sssseeeettttEEEEddddggggeeeeMMMMooooddddeeee(((()))).
  90.  
  91.           If _i_n_p_u_t_K_e_r_n_e_l has kernel type _i_l_K_e_r_n_S_e_p_a_r_a_b_l_e, then this operator
  92.           will perform a separable convolution, otherwise a general
  93.           convolution will be performed.  If the kernel has the clamp
  94.           attribute set, then the clamp attribute will be set on this image
  95.           and the convolved result will be appropriately clamped.
  96.  
  97. IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS
  98.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllSSSSppppaaaattttiiiiaaaallllIIIImmmmgggg
  99.      calcPage(), getEdgeMode(), getKernelSize(), getPage(), resetOp(),
  100.      setEdgeMode(), setKernel(), setKernelSize(), setKernFlags()
  101.  
  102.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllOOOOppppIIIImmmmgggg
  103.      checkMinMax(), clearClamp(), getBias(), getClamp(), getInputMax(),
  104.      getInputMin(), getInputScaleMax(), getInputScaleMin(), getValidOrders(),
  105.      getValidTypes(), isClamped(), isDiff(), isPrecisionKept(),
  106.      keepPrecision(), resetOp(), setBias(), setClamp(), setMaxPageSize(),
  107.      setMinPageSize(), setValidOrder(), setValidType(), setWorkingType()
  108.  
  109.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllMMMMeeeemmmmCCCCaaaacccchhhheeeeIIIImmmmgggg
  110.      allocPage(), doUserPageAlloc(), enableMP(), executeRequest(),
  111.      finishRequest(), freePage(), getGlobalThrashMode(), getMpRequest(),
  112.      getPage(), getPageAllocTime(), getPageTime(), getRetainMode(),
  113.      getRetainPath(), getThrashMode(), getThrashTime(), getTotalPageTime(),
  114.      isMPenabled(), isUserPageAlloc(), prepareRequest(),
  115.      setGlobalThrashMode(), setPage(), setPageAllocTime(), setRetainMode(),
  116.      setRetainPath(), setThrashMode(),
  117.  
  118.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllCCCCaaaacccchhhheeeeIIIImmmmgggg
  119.      enablePagingCallback(), flush(), getCacheSize(),
  120.      isPagingCallbackEnabled(), listResident()
  121.  
  122.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllIIIImmmmaaaaggggeeee
  123.      addInput(), allocFillData(), checkColorModel(), checkValidOrder(),
  124.      checkValidType(), clipTile(), configureRetainedCache(), copy(),
  125.      copyTile(), copyTile3D(), copyTileCfg(), fillTile(), fillTile3D(),
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiillllCCCCoooonnnnvvvvIIIImmmmgggg((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllCCCCoooonnnnvvvvIIIImmmmgggg((((3333))))
  137.  
  138.  
  139.  
  140.      fillTileRGB(), freeFillData(), getColorImg(), getColorModel(),
  141.      getColormap(), getCompression(), getConfig(), getCopyConverter(),
  142.      getCsize(), getDataType(), getDimensions(), getDirectInput(),
  143.      getDisplayCacheEnable(), getFill(), getFillData(), getFillValue(),
  144.      getHeight(), getHwEnable(), getHwHint(), getHwIntHint(), getHwOp(),
  145.      getHwPassTable(), getInput(), getInputTileRequirement(),
  146.      getLockTileSet(), getMaxColormapLevels(), getMaxValue(), getMinValue(),
  147.      getNumChans(), getNumInputs(), getOrder(), getOrientation(),
  148.      getPageBorder(), getPageBorderX(), getPageBorderY(), getPageBorderZ(),
  149.      getPageCounts(), getPageDelta(), getPageDimensions(), getPageIndices(),
  150.      getPageOrigin(), getPageOriginC(), getPageOriginX(), getPageOriginY(),
  151.      getPageOriginZ(), getPageSize(), getPageSizeC(), getPageSizePix(),
  152.      getPageSizeVal(), getPageSizeX(), getPageSizeY(), getPageSizeZ(),
  153.      getPixel(), getPixel3D(), getPriority(), getScaleMax(), getScaleMin(),
  154.      getSize(), getStrides(), getSubTile(), getSubTile3D(), getTile(),
  155.      getTile3D(), getWidth(), getXsize(), getYsize(), getZsize(),
  156.      hasPageBorder(), hasPages(), hwDefine(), hwGetPass(), inherit(),
  157.      initColorModel(), initHwEnable(), initMinMax(), initPageSize(),
  158.      initScaleMinMax(), isColorImg(), isIntegral(), isMirrorOrientation(),
  159.      isPartialPage(), isSigned(), isValidPage(), isWritable(), lockPage(),
  160.      lockPageSet(), lockTile(), lockTile3D(), mapFlipTrans(), mapFromInput(),
  161.      mapFromSource(), mapOrientation(), mapSize(), mapTile(), mapToInput(),
  162.      mapToSource(), mapXY(), mapXYSign(), outOfBound(), qCopyTileCfg(),
  163.      qFillTile3D(), qFillTileRGB(), qGetSubTile3D(), qGetTile3D(),
  164.      qLockPageSet(), qSetSubTile3D(), qSetTile3D(), removeHwHint(),
  165.      removeInput(), reset(), setColorModel(), setColormap(), setCompression(),
  166.      setCsize(), setDataType(), setDisplayCacheEnable(), setFill(),
  167.      setFillValue(), setHwEnable(), setHwHint(), setHwIntHint(), setInput(),
  168.      setMaxColormapLevels(), setMaxValue(), setMinValue(), setNumChans(),
  169.      setNumInputs(), setOrder(), setOrientation(), setPageBorder(),
  170.      setPageSize(), setPageSizeC(), setPageSizeZ(), setPixel(), setPixel3D(),
  171.      setPriority(), setScaleMinMax(), setScaleType(), setSize(), setSubTile(),
  172.      setSubTile3D(), setTile(), setTile3D(), setTileRequirementFunction(),
  173.      setWritable(), setXsize(), setYsize(), setZsize(), unlockPage(),
  174.      unlockPageSet()
  175.  
  176.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllLLLLiiiinnnnkkkk
  177.      addResetCallback(), alterAction(), anyAltered(), clearAllowed(),
  178.      clearSet(), clearStatus(), deleteRelated(), disableAltered(),
  179.      dumpChain(), getClassPropSet(), getDescription(), getDirectParent(),
  180.      getDisabledIndex(), getFloatProp(), getGenerationID(), getIntProp(),
  181.      getMaxIndex(), getMinIndex(), getNumChildren(), getNumParents(),
  182.      getParent(), getProp(), getProp(), getPropSet(), getPtrProp(),
  183.      getRelatedChild(), getRelatedDelete(), getRelatedType(), getStatus(),
  184.      hasResetCallbacks(), ilGetClassPropSet(), inProgress(), isAllowed(),
  185.      isAltered(), isEnabled(), isRelated(), isSet(), markSet(), mpUnlock(),
  186.      neverReset(), newRelatedType(), removeParent(), removeProp(),
  187.      removeResetCallback(), reset(), resetAltered(), resetCheck(),
  188.      setAllowed(), setAltered(), setDescription(), setDisabledIndex(),
  189.      setEnabled(), setParent(), setProp(), setPropAltered(),
  190.      setRelatedDelete(), setRelatedType(), setStatus(), stopWatching(),
  191.      unalterable(), watch(), watchNotify()
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. iiiillllCCCCoooonnnnvvvvIIIImmmmgggg((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllCCCCoooonnnnvvvvIIIImmmmgggg((((3333))))
  203.  
  204.  
  205.  
  206. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  207.      ilLink, ilImage, ilCacheImg, ilMemCacheImg, ilOpImg, ilSpatialImg, ilKer-
  208.      nel, ilSepKernel, ilSharpenKernel, ilSepSharpenKernel
  209.  
  210. NNNNOOOOTTTTEEEESSSS
  211.      Note that an even-sized kernel causes a half-pixel shift away from the
  212.      origin because the center of the kernel is between the center elements.
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.