useDynLib(EBImage)

importFrom("methods", "Ops")
importFrom("methods", "show")
importFrom("graphics", "image")
importFrom("graphics", "hist")
importFrom("stats", "median")

## classes
exportClasses(Image)

## image class, accessors
export(Image, is.Image, as.Image, print.Image, as.raster.Image)
export(Grayscale, Color)
exportMethods(Ops, "[")
export(colorMode, "colorMode<-", imageData, "imageData<-")
export(getFrame, getNumberOfFrames)

## image IO, display
exportMethods('show')
export(readImage, writeImage, display, animate)

## spatial transform
export(resize, rotate)
export(flip, flop)
export(translate)
export(affine)

## image segmentation, objects manipulation
export(thresh, bwlabel)
export(watershed, propagate)
export(ocontour)
export(paintObjects, rmObjects, reenumerate)

## statistics
export(median.Image, quantile.Image)
exportMethods(hist)

## image enhancement, filtering
export(normalize)
export(filter2)
export(blur, gblur)
export(equalize)
        
## morphological operations
export(makeBrush)
export(erode, dilate, opening, closing)
export(distmap)
export(floodFill, fillHull)

## colorspace
export(rgbImage, channel)

## image stacking, tiling
export(stackObjects)
export(combine, tile, untile)

## drawables
export(drawfont, drawtext)
export(drawCircle)

## features extraction
export(computeFeatures)
export(computeFeatures.basic, computeFeatures.shape, computeFeatures.moment, computeFeatures.haralick)
export(standardExpandRef)

## obsolete (still exported for backward compatibility reasons)
export(getFeatures)
export(hullFeatures)
export(edgeProfile, edgeFeatures)
export(moments, cmoments, smoments, rmoments)
export(haralickFeatures, haralickMatrix)
export(zernikeMoments)
