4
$\begingroup$

Note -- I would appreciate any comments on ho to improve the question -- I did the best I could but it I feel it may still be sup-par.

HIPS was/is an excellent image processing software. It was basically a large number of unix command line tools each that did something very well and you used UNIX pipes to combine them.

I'm either looking for something equivalent or a library that has equivalent functions that I can write command line wrappers around.

A library in Java would be Devine, Open Source is a must.

Thanks.

Some example of the tools HIPS had (full list here):

Geometric and Other Operations on Pictures

  • abspix - take the absolute value of pixels
  • bnoise - add binomial noise to an image
  • calcpix - generate and execute a program which manipulates byte-formatted sequences
  • exppix - take the exponential of an image
  • fcalcpix - generate and execute a program which manipulates float-formatted sequences
  • gnoise - pipe sequence through a channel with Gaussian noise
  • histoeq - histogram equalization
  • histostretch - stretch contrast by ignoring outlier pixel values
  • logimg - take the natural logarithm of an image
  • mean0 - subtract the mean from an image so that it has a mean of zero
  • neg - take the photographic negative of an image
  • noise - simulate a noisy digital communication channel
  • powerpix - raise to a power and normalize each pixel of a frame
  • scale - scale a sequence of images
  • scalemeansd - scale images to have a specified mean and standard deviation
  • shiftpix - shift pixel values
  • stretchpix - stretch or compress the range of gray-levels
  • thresh - apply a threshold

Frame Arithmetic

  • absdiffseq - compute the absolute value of the difference of image pixels
  • addseq - add two sequences, pixel by pixel
  • andseq - compute the logical AND of two sequences
  • autodiff - absolute value of the difference between successive frames
  • calccomb - generate and execute a program which combines byte-formatted sequences
  • colorkey - perform a `color keying' operation for merging several images
  • diffseq - subtract two sequences, pixel by pixel
  • divseq - divide two sequences, pixel by pixel
  • fcalccomb - generate and execute a program which combines float-formatted sequences
  • maxabsseq - compute the maximum absolute value of two sequences, pixel by pixel
  • maxseq - compute the maximum of two sequences, pixel by pixel
  • minabsseq - compute the minimum absolute value of two sequences, pixel by pixel
  • minseq - compute the minimum of two sequences, pixel by pixel
  • mulseq - multiply two sequences, pixel by pixel
  • orseq - compute the logical OR of two sequences
  • xorseq - compute the logical XOR of two sequences

Convolution, Correlation, Edge Detection and Other Spatial Operations

  • abdou - Abdou's edge fitting procedure
  • bclean - remove small 8-connected components
  • btcsmooth - smooth a btc image
  • convolve - 3D convolution
  • correl - cross-correlate two images
  • discedge - a discrete domain regional edge detector
  • discedge2 - a discrete domain regional edge detector with offsets
  • dog - filter an image by applying difference of Gaussians mask
  • extremum - apply an extremum filter to an image
  • mask - generalized filtering program
  • maskseq - convert a mask set into a HIPS sequence
  • median - apply a median filter to an image
  • morphdilate - apply the morphological operator of dilation
  • morpherode - apply the morphological operator of erosion
  • nonisot - nonisotropic convolution
  • thicken - thicken a white-on-black image
  • thin - thin and categorize a white-on-black image
  • zc - find zero-crossings in a convolved sequence

Digital Transforms and Filters

  • bandpass - apply a bandpass filter to a sequence
  • bandreject - apply a band rejection filter to a sequence
  • dct - discrete cosine transform
  • dispwbasis - output the basis set for the Walsh transform of a 16X16 array
  • flipquad - swap opposite image quadrants
  • fourtr - Fourier transform and spectrum
  • fourtr3d - 3D Fourier transform and spectrum
  • highpass - apply a highpass filter to a sequence
  • inv.dct - inverse discrete cosine transform
  • inv.fourtr - inverse Fourier transform
  • inv.walshtr - inverse Walsh transform
  • lowpass - apply a lowpass filter to a sequence
  • walshtr - Walsh transform

Gaussian and Laplacian Pyramid Operations

  • imgtopyr - compute a Laplacian or Gaussian pyramid
  • pyrdisplay - convert an image pyramid to a single image for display
  • pyrexpand - apply the pyramid expand operation to an image or pyramid
  • pyrextract - extract a subset of pyramid levels
  • pyrmerge - merge several images or pyramids into a single pyramid
  • pyrreduce - apply the pyramid reduce operation to an image or pyramid
  • pyrtoimg - reconstruct an image from a Laplacian pyramid -Image Compression
  • ahc3 - 3D adaptive hierarchical coding into binary trees of binary images
  • ahc3_r - decode an ahc3-coded sequence into a byte formatted sequence
  • binquad - 3D binary (temporal) and quadtree (spatial)
$\endgroup$
5
  • 1
    $\begingroup$ I am not sure if OpenCV Contains all those functions. But I am positive that it is one of the best Computer Vision library ever. link $\endgroup$ Jun 30, 2015 at 7:43
  • $\begingroup$ Could you review my answer? $\endgroup$
    – Royi
    Mar 30, 2021 at 5:57
  • $\begingroup$ Royi, while ImageMagick and many such libraries have all the functions -- what is amazing about Hips is it's ability to use UNIX pipes and combination operators to form complex pipelines. As far as I know -- ImageMagic, OpenCV and the like do not have these facilities. $\endgroup$ Mar 31, 2021 at 6:43
  • $\begingroup$ @user1172468, Could you please mark / review my answer? $\endgroup$
    – Royi
    Feb 20, 2022 at 8:48
  • $\begingroup$ What's wrong with HIPS? It's now public domain and already does everything you want. $\endgroup$
    – Peter K.
    Feb 20, 2022 at 23:24

1 Answer 1

3
$\begingroup$

It sounds like ImageMagick is a good fit for you.

Give it a try and tell us what you think.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.