[Haskell] ANN: blockhash-0.1.0.0

KwangYul Seo kwangyul.seo at gmail.com
Tue Jul 19 04:07:54 UTC 2016


Hi all!

I'm pleased to announce the first release of blockhash, a perceptual image
hash calculation tool based on algorithm described in Block Mean Value
Based Image Perceptual Hashing by Bian Yang, Fan Gu and Xiamu Niu.

https://hackage.haskell.org/package/blockhash

https://github.com/kseo/blockhash

Program:

Usage: blockhash [-q|--quick] [-b|--bits ARG] filenames
  blockhash

Available options:
  -h,--help                Show this help text
  -q,--quick               Use quick hashing method
  -b,--bits ARG            Create hash of size N^2 bits.


Library:

import qualified Codec.Picture as P
import Data.Blockhash
import qualified Data.Vector.Generic as VG
import qualified Data.Vector.Unboxed as V

printHash :: FilePath -> IO ()
printHash :: filename = do
  res <- P.readImage filename
  case res of
    Left err -> putStrLn ("Fail to read: " ++ filename)
    Right dynamicImage -> do
      let rgbaImage = P.convertRGBA8 dynamicImage
          pixels = VG.convert (P.imageData rgbaImage)
          image = Image { imagePixels = pixels
                        , imageWidth = P.imageWidth rgbaImage
                        , imageHeight = P.imageHeight rgbaImage }
          hash = blockhash image 16 Precise
      putStrLn (show hash)


For further information on the blockhash algorithm, please visit the web
site:

http://blockhash.io/

Thanks,
Kwang Yul Seo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell/attachments/20160719/6e94ccf2/attachment.html>


More information about the Haskell mailing list