Skip to content

Commit

Permalink
Merge remote-tracking branch 'mattiGH/ME/renkaat'
Browse files Browse the repository at this point in the history
Conflicts:
	CV.cabal
  • Loading branch information
aleator committed Aug 16, 2012
2 parents bea423a + 5958b78 commit 25c49c9
Show file tree
Hide file tree
Showing 10 changed files with 2,237 additions and 4 deletions.
18 changes: 14 additions & 4 deletions CV.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,21 @@ Library
cbits/cvWrapLEO.h,
cbits/cvWrapCore.h,
cbits/wrapImgProc.h,
cbits/cvIterators.h
cbits/cvIterators.h,
cbits/cvProjection.h,
cbits/cvFiles.h
c-sources: cbits/cvWrapLEO.c,
cbits/cvWrapCore.c,
cbits/wrapImgProc.c,
cbits/cvIterators.c
cbits/cvIterators.c,
cbits/cvProjection.c,
cbits/cvFiles.c
install-includes: cbits/cvWrapLEO.h,
cbits/cvWrapCore.h,
cbits/wrapImgProc.h,
cbits/cvIterators.h
cbits/cvIterators.h,
cbits/cvProjection.h,
cbits/cvFiles.h
if flag(opencv23)
cpp-options: -DOpenCV23
cc-options: -DOpenCV23
Expand Down Expand Up @@ -154,6 +160,8 @@ Library
,CV.Tracking
,CV.Transforms
,CV.Video
,CV.Projection
,CV.Files
,Utils.DrawingClass
,Utils.Function
,Utils.GeometryClass
Expand All @@ -171,7 +179,9 @@ Library
CV.Bindings.Drawing,
CV.Bindings.Error,
CV.Bindings.Features,
CV.Bindings.Iterators
CV.Bindings.Iterators,
CV.Bindings.Projection,
CV.Bindings.Files
Extensions: CPP

source-repository head
Expand Down
20 changes: 20 additions & 0 deletions CV/Bindings/Files.hsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{-# LANGUAGE ForeignFunctionInterface #-}
module CV.Bindings.Files where

import Foreign.Ptr
import Foreign.C.String
import CV.Bindings.Types
import CV.Image(BareImage)

#strict_import

#include <bindings.dsl.h>
#include "cvFiles.h"

#ccall read_from_tcr , CString -> Ptr (Ptr CUInt) -> IO (Ptr BareImage)

#ccall read_from_tcr_rectified , CString -> IO (Ptr BareImage)

#ccall read_from_tcr_mag , CString -> IO (Ptr BareImage)

#ccall calc_derivative_direction , Ptr BareImage -> IO (Ptr BareImage)
13 changes: 13 additions & 0 deletions CV/Bindings/Projection.hsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{-# LANGUAGE ForeignFunctionInterface #-}
module CV.Bindings.Projection where

import Foreign.Ptr
import CV.Bindings.Types
import CV.Image(BareImage)

#strict_import

#include <bindings.dsl.h>
#include "cvProjection.h"

#ccall project_polar , Ptr BareImage -> IO (Ptr BareImage)
28 changes: 28 additions & 0 deletions CV/Files.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
module CV.Files where

import CV.Bindings.Files
import CV.Image

import Foreign.C.String
import Foreign.Ptr(nullPtr, castPtr)
import System.IO.Unsafe

readFromTcr :: String -> Image GrayScale D32
readFromTcr p = unsafePerformIO $ creatingImage $
withCString p $ \path ->
c'read_from_tcr path nullPtr

readFromTcrRectified :: String -> Image GrayScale D32
readFromTcrRectified p = unsafePerformIO $ creatingImage $
withCString p $ \path ->
c'read_from_tcr_rectified path

readFromTcrMag :: String -> Image GrayScale D32
readFromTcrMag p = unsafePerformIO $ creatingImage $
withCString p $ \path ->
c'read_from_tcr_mag path

calcDerivativeDirection :: Image GrayScale D32 -> Image GrayScale D32
calcDerivativeDirection image = unsafePerformIO $ creatingImage $
withImage image $ \pimage ->
c'calc_derivative_direction (castPtr pimage)
15 changes: 15 additions & 0 deletions CV/Operations.hs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{-# LANGUAGE ScopedTypeVariables #-}
module CV.Operations
( clear
, set
Expand All @@ -6,6 +7,7 @@ module CV.Operations
, unitNormalize
, unitStretch
, logNormalize
, cartToPolar
) where

import CV.Bindings.Core
Expand Down Expand Up @@ -78,3 +80,16 @@ unitNormalize i
unitStretch i = normalize 0 1 NormMinMax i

logNormalize = unitNormalize . IM.log . (1 |+)

cartToPolar :: (Image GrayScale D32, Image GrayScale D32) -> (Image GrayScale D32, Image GrayScale D32)
cartToPolar (x,y) = unsafePerformIO $ do
r::(Image GrayScale D32) <- create (w, h)
a::(Image GrayScale D32) <- create (w, h)
withImage x $ \px ->
withImage y $ \py ->
withImage r $ \pr ->
withImage a $ \pa -> do
c'cvCartToPolar (castPtr px) (castPtr py) (castPtr pr) (castPtr pa) (fromIntegral 0)
return (r,a)
where
(w,h) = getSize x
12 changes: 12 additions & 0 deletions CV/Projection.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module CV.Projection where

import CV.Bindings.Projection
import CV.Image

import Foreign.Ptr
import System.IO.Unsafe

projectPolar :: Image c d -> Image GrayScale D32
projectPolar i = unsafePerformIO $ creatingImage $
withImage i $ \i_ptr ->
c'project_polar (castPtr i_ptr)
Loading

0 comments on commit 25c49c9

Please sign in to comment.