Nokia Cv Informational Slides

Embed Size (px)

Citation preview

  • 8/21/2019 Nokia Cv Informational Slides

    1/77

    Learning More About NokiaCV

    A Mobile Based Computer Vision

    Algorithm Suite

  • 8/21/2019 Nokia Cv Informational Slides

    2/77

    Current Scenario

    Mobile cameras are widespread

    Main uses for camera: capturing images/videos

    Still significantbarriers to create new

    applications

    There is not enough supportfor

    camera/imaging in S60 SDK

    Only a handful of small companies making

    camera apps. Most of these are experts

    computer vision expertise, image/signal

    processing experience

  • 8/21/2019 Nokia Cv Informational Slides

    3/77

    Solution: Nokia Computer Vision

    Library (NokiaCV) Developers do not have to start

    imaging/camera applications from scratch

    Shared platform will encourage further and

    more complex work in imaging domain

    Nokia Computer Vision library built on top

    of Symbian

    Fundamental operations for imaging and

    camera processing

  • 8/21/2019 Nokia Cv Informational Slides

    4/77

    Prior work

    A few libraries available for mobile devices, includin

    S60

    Symbian mainly supports bitmap drawing, image/video

    capture. No processing support

    Difficult/slow to access individual pixelscommon

    operation in processing

    Other S60 imaging libraries are research-qualitycode, no support

  • 8/21/2019 Nokia Cv Informational Slides

    5/77

    Goal

    Internally to be used in imaging products, as aresearch test bed, etc.

    Externally to provide developers in binary form

    to facilitate third-party imaging Intels OpenCV is the desktop version of what

    NCV will become for mobiles Full functionality

    Wide range of imaging operations, however some notpossible on mobile (yet)

    NokiaCVs main difference: supports operations thatare useful and fast right now.

  • 8/21/2019 Nokia Cv Informational Slides

    6/77

    Use Cases

  • 8/21/2019 Nokia Cv Informational Slides

    7/77

    Capture Enhancement

    Image color conversions, imaging wrapper to modify images easilyand manipulate pixels directly and easily

    Building blocks present for developers to make high-quality stitchingalgorithms for panoramas

    Building blocks present for developers to implement complex

    algorithms without requiring the building and debugging of aplatform

  • 8/21/2019 Nokia Cv Informational Slides

    8/77

    Gaming/UI

    Provides robust motion estimation as a software

    component, ready for games and applications

  • 8/21/2019 Nokia Cv Informational Slides

    9/77

    Post-capture editing

    Image warping operation provided to createstandard warping or in other entertainment uses

    Image compositing provided to add items to

    captured images

  • 8/21/2019 Nokia Cv Informational Slides

    10/77

    NokiaCV Library Overview

    Library builds on OS, extending imaging

    capabilities

    Image object provided standardizing OS image

    internals Standard image operations provided

    Linear algebra used in many advanced imaging

    applications, present in NCV Building block for future advanced libraries, both

    externally and internally

  • 8/21/2019 Nokia Cv Informational Slides

    11/77

    Functional Blocks

  • 8/21/2019 Nokia Cv Informational Slides

    12/77

    CCamus

    CEgoMovement

    CEigenvalues

    CFixed

    CImageOp CArithmeticOp

    CColorConversionOp

    CComparisonOp

    CConvolutionOp CCornerDetectionOp

    CEdgeDetectionOp

    CGaussianSmoothOp

    CMedianFilterOp

    CMorphologicalOp

    CResizeOp

    CRotationOp

    CShearOp

    CTemplateMatchOp

    CThresholdOp

    CWarpOp

    CImageOperations

    CImagePyramid

    CImageStatistics

    CMotionHistoryImage

    CNokiaCVImage

    CNokiaCVMath

    CNokiaCVMatrix CNokiaCVVector

    COpticalFlow CPixelAccess

    CPixelColorModel

    CSVD

    TColorModel CHsvColorModel

    CLabColorModel

    CLmsColorModel

    CRgbColorModel

    CXyzColorModel CYuvColorModel

    http://localhost/var/www/SVN/Documentation/html/class_c_camus.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_eigenvalues.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_arithmetic_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_color_conversion_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_comparison_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_convolution_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_corner_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_edge_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_gaussian_smooth_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_median_filter_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_morphological_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_shear_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_template_match_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_threshold_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_warp_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_math.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_pixel_access.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_pixel_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_s_v_d.htmlhttp://localhost/var/www/SVN/Documentation/html/class_t_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_hsv_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_lab_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_lms_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rgb_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_xyz_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_yuv_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_yuv_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_xyz_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rgb_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_lms_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_lab_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_hsv_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_t_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_s_v_d.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_pixel_color_model.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_pixel_access.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_math.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_warp_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_threshold_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_template_match_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_shear_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_morphological_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_median_filter_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_gaussian_smooth_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_edge_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_corner_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_convolution_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_comparison_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_color_conversion_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_arithmetic_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_eigenvalues.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_camus.html
  • 8/21/2019 Nokia Cv Informational Slides

    13/77

    API Overview

    This library extends the image processing and math capabilities ofthe Symbian Series 60 platform, targeted for applications usingcomputer vision techniques on camera phones.

    The library provides an image class, CNokiaCVImagefor handlingRGB, grayscale and black and white images. Provides functions toperform arithmetic operations, transformations, feature extraction,

    color conversions. In addition, operations to compute imagestatistics such as histograms and pixel color means are provided.

    The library has two algorithms (CCamusand CMotionHistoryImage)to determine motion estimates and history.

    Matrix and vector classes CNokiaCVMatrixand CNokiaCVVectorallow creation of matrices and vectors of arbitrary dimensionality.

    Math operations and some linear algebra techniques that work withthese classes are available in the library.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_camus.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_camus.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    14/77

    Library Features

  • 8/21/2019 Nokia Cv Informational Slides

    15/77

    CNokiaCVImage Class

    CNokiaCVImageis a wrapper for CFbsBitmap that isprovided by the platform. This class providesDisplayMode independent access to the pixel data.CFbsBitmap* iInternalBitmap;

    Usage examples:// load from file

    CNokiaCVImage* incvBitmap = CNokiaCVImage::NewL();

    TRAPD(err1, incvBitmap->CreateL( *aImageFullName )); ...

    // draw bitmap

    CWindowGc& gc = SystemGc();

    gc.BitBlt( TPoint( 0,0 ), incvBitmap-> Bitmap());

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    16/77

    Functions

    static IMPORT_C CNokiaCVImage*CNokiaCVImage::NewLC ( ) ; Implements two-phaseconstruction functions (NewLC(), ConstructL()) tocreate a new instance of the object.

    Returns: CNokiaCVImage*

    IMPORT_C void CNokiaCVImage::CreateL (const TDesC& aFileName ) ; Create image from a file.

    static IMPORT_C void CNokiaCVImage::Copy(CNokiaCVImage* aSource, CNokiaCVImage* aTarget,TInt aBlendingRatio = 100); Copy a source imageto the target image.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    17/77

    CPixelAccess Class

    CPixelAccessclass provides access toCNokiaCVImageon a pixel-level. Derived fromTBitmapUtil.

    Example:

    CPixelAccess* out = CPixelAccess::NewL(aTarget);CPixelAccess* in = CPixelAccess::NewL(iImage, out);...in->SetPos( TPoint( rotX, rotY ) );out->SetPos(TPoint( x, y ) );out->SetRGB( in->GetRGB()); // set pixel value from into out...delete out;delete in;

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_pixel_access.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_pixel_access.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_pixel_access.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_pixel_access.html
  • 8/21/2019 Nokia Cv Informational Slides

    18/77

    Functions

    static IMPORT_C CPixelAccess* CPixelAccess::NewLC(CNokiaCVImage* aImage ) ; Constructor. Sets thecurrent pixel position to (0,0) position.

    IMPORT_C TUint32 CPixelAccess::GetRGB ( ) ; Returnpixel from the current position as a RGB.

    IMPORT_C void CPixelAccess::SetRGB(TUint32 aPixel ) ; Set pixel to the current

    position.Parameters:

    aPixelRGB value as TUint32 in format used byTRgb: 0x00BBGGRR

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_pixel_access.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_pixel_access.html
  • 8/21/2019 Nokia Cv Informational Slides

    19/77

    CPixelColorModel Class

    IMPORT_C TUint8 CPixelColorModel::Red ( ) ; Getthe red component;

    Returns: TUint8 Red-component

    IMPORT_C CYuvColorModelCPixelColorModel::ToYUV( ) ; Convert to YUV.

    Returns: CYuvColorModel.

    IMPORT_C CHsvColorModelCPixelColorModel::ToHSV( ) ;

    Convert to HSV

    return CHsvColorModel

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_yuv_color_model.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_yuv_color_model.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_hsv_color_model.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_hsv_color_model.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_yuv_color_model.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_yuv_color_model.html
  • 8/21/2019 Nokia Cv Informational Slides

    20/77

    TColorModel Class

    class CRgbColorModel : public TColorModel{

    public:TInt iR;TInt iG;TInt iB;};

    class CYuvColorModel : public TColorModel{

    public:

    TInt iY;TInt iU;TInt iV;};

  • 8/21/2019 Nokia Cv Informational Slides

    21/77

    CNokiaCVMath Class

    This class gathers some utility functions in one place.

    static IMPORT_C TInt SinLUT_Rad(TReal&aTrg, const TReal &aSrc)Computes Sinusing lookup table.

    static IMPORT_C TInt TanLUT_Rad(TReal&aTrg, const TReal &aSrc) Computes Tanusing lookup table.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_math.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_math.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_math.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_math.html
  • 8/21/2019 Nokia Cv Informational Slides

    22/77

    CNokiaCVMatrix Class

    Fixed point matrix representation. Usage:CNokiaCVMatrix* m = CNokiaCVMatrix->NewLC(5,5);

    (*m)(3,3) = 2; (*m)(2,3) = 4.23;

    CNokiaCVMatrix* n = CNokiaCVMatrix->Ones(5,5);CleanupStack::PushL(n);

    CNokiaCVMatrix*res = (*m)*(*n)*5;

    CleanupStack::PushL(res);

    CFixeddet = res->Det();

    ...CleanupStack::Pop(m); CleanupStack::Pop(n);CleanupStack::Pop(res);

    delete m; delete n; delete res;

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.html
  • 8/21/2019 Nokia Cv Informational Slides

    23/77

    Functions

    static IMPORT_C CNokiaCVMatrix*NewL(const TIntaRows, const TInt aCols)Creates a new matrixaccording to size given with initial value zero.

    IMPORT_C CNokiaCVMatrix* Inverse()const Calculates the inverse matrix of this

    matrix.

    IMPORT_C CFixed** Eigenvalues() Calculates theeigenvalues of this matrix.

    IMPORT_C CFixed* Singularvalues() Calculates thesingular values of this matrix using ncvSVD.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.html
  • 8/21/2019 Nokia Cv Informational Slides

    24/77

    CSVD Class

    Singular value decomposition of a given real matrix.

    Householder bidiagonalization and a variant of the QR algorithm are

    used.

    The SVD algorithm is derived from JAMA/TNT, the Java Matrix

    Package. Usage:

    CNokiaCVMatrix*a = CNokiaCVMatrix::NewL(rows,cols);

    CSVD*svd;

    TRAPD(err, svd = CSVD::NewL(*a))

    ... //Handle possible errorsCNokiaCVMatrix*v = svd->V();

    ...

    delete a; delete svd; delete v;

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_s_v_d.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_s_v_d.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_s_v_d.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_s_v_d.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.html
  • 8/21/2019 Nokia Cv Informational Slides

    25/77

    CNokiaCVVector Class

    Fixed point representation of a vector.

    classCNokiaCVVector : publicCNokiaCVMatrix

    {

    IMPORT_C TInt Length()Getter of the vector size/length.

    IMPORT_C CNokiaCVVector* Normalize() Creates thenormalization of this vector.

    IMPORT_C CNokiaCVVector* CrossProduct(CNokiaCVVector&aVector) Calculates the cross product of this and the givenvector.

    IMPORT_C CFixedDotProduct(CNokiaCVVector&aVector) Calculatesthe dot product of to same size vectors.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_vector.html
  • 8/21/2019 Nokia Cv Informational Slides

    26/77

    CMotionHistoryImage Class

    This class computes a motion history image (MHI) for a series ofinput frames. The MHI is a grayscale bitmap in which recentlymoved pixels are represent with bright values and "older" withdarker values. Frame-by-frame the values from previous frames aredecayed linearly.

  • 8/21/2019 Nokia Cv Informational Slides

    27/77

    Functions

    static IMPORT_C CMotionHistoryImage*NewL(CNokiaCVImage&aImage, const TIntaHistorySize)Construct CMotionHistoryImagefrom thefirst image of motion history.

    Parameters:aImageSize Size of the images.aHistorySize Maximum number of images in thehistory.

    IMPORT_C voidAddImage(CNokiaCVImage&aImage) Add animage to the motion history.

    IMPORT_C void GetImage(CNokiaCVImage&aImage) Get aCNokiaCVImagecontaining the motion history image.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_motion_history_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    28/77

    COpticalFlow Class

    The optical flow class: motion estimations for each pixel.This class also implements methods for calculatinghigher level information from the optical flow.

    Friends class CCamus: Camus algorithm forestimation of optical flow from a series of bitmaps.

    Member CEgoMovement Class: class for pixel motion

    estimation values.CFixediXMovement along the x-axis.

    CFixediYMovement along the y-axis .

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.html
  • 8/21/2019 Nokia Cv Informational Slides

    29/77

    Functions

    static IMPORT_C COpticalFlow*NewL(const TSize&aImageSize)Factory method for creating aninstance.Parameters: aImageSize Size of the optical flow map

    IMPORT_C CEgoMovementMean() const Calculate themean value of the optical flow. Represents tiltingand panning of the camera.

    IMPORT_C CFixedRotation()Calculate the meanrotation of the optical flow in the image plane.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.html
  • 8/21/2019 Nokia Cv Informational Slides

    30/77

    Functions

    void SetCamusOpts(const TInt aCamusOpts)Setruntime parameters of the Camus motion estimationalgorithm.

    IMPORT_C CEgoMovement(const CFixedaX, constCFixedaY)Constructor.

    IMPORT_C CFixedNorm() Calculates the euclidian

    norm of the movement.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_optical_flow.html
  • 8/21/2019 Nokia Cv Informational Slides

    31/77

    CImagePyramid Class

    Creates a Laplacian or Gaussian image pyramid from a givenbitmap.

    IMPORT_C CNokiaCVImage* LevelImage(TIntaLevel)Getter for an image of certain level.

    Returns: CNokiaCVImage* Pointer to the level image

    static IMPORT_C CImagePyramid* NewLC(CNokiaCVImage*aImage, TInt aLevels,TImagePyramidType

    aType=EGaussianPyramid)Constructor.

    Parameters:

    aImage CNokiaCVImageto construct the pyramid fromaLevels How many levels in the pyramid. If the numberis too large it will be truncated. aType Which type of

    pyramid to construct. Default = Gaussian.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_pyramid.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    32/77

    CImageStatistics Class

    Calculating various statistics from CNokiaCVImages. CImageStatisticsprovides the following statistical functions for CNokiaCVImages:

    Histogram

    Mean

    Standard deviation

    Image moments:

    m00 m01

    m10

    m11

    m20

    M02

    Usage:

    TReal mean; CImageStatistics::Mean(*iSourceBitmap, mean,(TChannel)aChannel);

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.html
  • 8/21/2019 Nokia Cv Informational Slides

    33/77

    Functions

    static IMPORT_C void Histogram(CNokiaCVImage&aImage, THistogram &aArray, TChannelaChannel=EGrayChannel)Calculate the histogramfrom a CNokiaCVImage.

    static IMPORT_C voidMean(CNokiaCVImage&aImage,TReal &aMean, TChannelaChannel=EAllChannels) Calculate the mean ofCNokiaCVImage.static IMPORT_C void StDev(CNokiaCVImage&aImage,TReal &aStDev, TReal &aMean, TChannel

    aChannel) Calculate the standard deviation of aCNokiaCVImage.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_statistics.html
  • 8/21/2019 Nokia Cv Informational Slides

    34/77

    CImageOperations Class

    Provides an simplified access to image operations. Each operation

    is a static method that creates and returns the result bitmap.

    UsageCNokiaCVImage* iTarget =CImageOperations::Rotate(iSource, 45);

    ...

    delete iTarget;

  • 8/21/2019 Nokia Cv Informational Slides

    35/77

    Functions

    static IMPORT_C CNokiaCVImage* Resize(CNokiaCVImage*aSource, TSize aSize, TBool aBilinear=EFalse)Resizesthe source image. See CResizeOpfor more information.

    static IMPORT_C CNokiaCVImage* Convolution(CNokiaCVImage*aSource, CNokiaCVMatrix&aKernel, TIntaNormFactor) Performs convolution of CNokiaCVImageand akernel (CNokiaCVMatrix).

    static IMPORT_C CNokiaCVImage* Gaussian(CNokiaCVImage*aSource, TUint aSize) Gaussian smoothing filter.

    static IMPORT_C CNokiaCVImage* EdgeDetectLaplacian

    (CNokiaCVImage*aSource) Laplacian edge detectionfilter. See CEdgeDetectionOpfor more info.

    http://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_edge_detection_op.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_edge_detection_op.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/apps/NCV_new/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    36/77

    CCamus Class

    Implements the Camus algorithm for estimation of optical flow from a seriesof bitmaps. This class creates an COpticalFlowobject that contains anestimation of the motion vector (x and y motion in pixels) for each pixel ofthe input frame.

    Can use the methods of COpticalFlowto extract higher level informationsuch as estimated camera rotation/movement.

    The algorithm is highly parameterizable. Features of the algorithm and some hints: Maximum estimated motion is 1 or 2 pixels/frame, so it is typically reasonable to

    use small bitmaps (e.g. 16x12 pixels).

    History of several frames is used to achieve sub pixel accuracy

    Based on template matching

    Uses grayscale images

    Large motions are hard so having a good frame rate is essential since the per-frame motion is inversely proportional to the frame rate

    Small bitmaps are preferred (especially when estimation of quick movements isrequired) as its faster to compute; higher frame rate.

    http://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.html
  • 8/21/2019 Nokia Cv Informational Slides

    37/77

    Camus Algorithm

    Basic idea:

    Simple technique to perform optical flowcomputations using correlation or patch-

    making methods. The idea here is to matchfeatures between images and computing theSD (sum-difference) of patches.

    Reference: T. Camus, Real-Time OpticalFlow, PhD Thesis, Brown UniversityTechnical Report CS-94-36, 1994.

  • 8/21/2019 Nokia Cv Informational Slides

    38/77

    Functions

    static IMPORT_C CCamus* CCamus::NewL

    (CNokiaCVImage& aImage,

    const TInt aHistorySize=KDefaultCamusHistorySize )

    IMPORT_C void CCamus::GetOpticalFlow (COpticalFl& aOpticalFlow, CNokiaCVImage& aImage, constTInt aCamusOpts= KDefaultCamusOpts )

    http://localhost/var/www/SVN/Documentation/html/class_c_camus.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_camus.html
  • 8/21/2019 Nokia Cv Informational Slides

    39/77

    How to Use CCamus

    COpticalFlow* iOpticalFlow =COpticalFlow::NewL(iFirstFrame->Size());

    CNokiaCVImage* iCamus = CCamus::NewL(*iFirstFrame,5);

    iCamus->GetOpticalFlow(*iOpticalFlow, *iSecondFrame,CAMUS_SETCAMUSOPTS(CCamus::EMedium,CCamus::EMedium, 3));

    CEgoMovementmean = iOpticalFlow->Mean();

    http://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_optical_flow.html
  • 8/21/2019 Nokia Cv Informational Slides

    40/77

    CEgoMovement Class

    Simple vector-like wrapper class for pixel

    motion estimation values.

  • 8/21/2019 Nokia Cv Informational Slides

    41/77

    Functions IMPORT_C CEgoMovement::CEgoMovement (const

    CFixedaX, const CFixedaY)Constructor.Parameters: aXMovement along the x-axis. aYMovement along the y-axis.

    IMPORT_C CFixedCEgoMovement::Norm ( )Calculatesthe Euclidian norm of the movement.Returns:Norm (the length of the movement in cartesian

    coordinate system).

    IMPORT_C CFixedCEgoMovement::DotProduct (constCEgoMovement& aMovement )Calculates a dotproduct.Parameters: aMovementVector movement.

    Returns:

    Dot product value.

    http://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_ego_movement.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.html
  • 8/21/2019 Nokia Cv Informational Slides

    42/77

    CEigenValues Class

    Eigenvalue decomposition of a real matrix.Usage:CNokiaCVMatrix* matrix = ...; CEigenvalues*eigs;

    TRAPD(err, eigs = CEigenvalues->NewL(matrix));if(err != KErrNone) {

    //eigs not found do something

    }

    else {

    TReal * real = eigs->RealEigenvalues();delete eigs;

    } ...

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_eigenvalues.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_eigenvalues.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_eigenvalues.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_eigenvalues.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.html
  • 8/21/2019 Nokia Cv Informational Slides

    43/77

    Functions

    IMPORT_C TReal*CEigenvalues::RealEigenvalues ( )Getter for the real part of theeigenvalues (iD).Returns: the real part of the eigenvalues in an array

    IMPORT_C TReal*CEigenvalues::ImaginaryEigenvalues ( )Getter for the imaginary part of theeigenvalues (iE).Returns: the imaginary part of the eigenvalues in anarray

  • 8/21/2019 Nokia Cv Informational Slides

    44/77

    CFixed Class

    Fixed point class.

    The class implements basic arithmetic for

    fixed point numbers.

    CFixedcan be used instead of TReal

    when performance more critical than

    accuracy.

    http://localhost/var/www/SVN/Documentation/html/class_c_fixed.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_fixed.html
  • 8/21/2019 Nokia Cv Informational Slides

    45/77

    CImageOp Class

    Image operations interface. This class represents an interface that all image operation classes

    must implement. Most of the operations implementing this interfaceare also included in CImageOperations.

    There are various image operations that implement this interface,e.g. for rotating, scaling and filtering bitmap.

    Usage example (CRotationOp):

    iSource = ....iTargetMode = EGray256;iTarget1 = CNokiaCVImage::NewL();

    iTarget1->CreateL(iCurrSource->Size(),iTargetMode);CRotationOpop(iCurrSource, 90);op.DoOperation(iTarget1); ...

    http://localhost/var/www/SVN/Documentation/html/class_c_image_operations.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_operations.html
  • 8/21/2019 Nokia Cv Informational Slides

    46/77

    Functions

    virtual IMPORT_C void CImageOp::DoOperation(CNokiaCVImage* aTarget )[pure virtual]

    All image operations must implement this method. This method doesthe actual operation.

    Typically you need to allocate and create the target bitmap yourselfbefore doing the operation

    Parameters: aTargettarget bitmap

    Note: the function can leave

    Implemented in CArithmeticOp, CColorConversionOp,

    CComparisonOp, CConvolutionOp, CCornerDetectionOp,CEdgeDetectionOp, CGaussianSmoothOp, CMedianFilterOp,CMorphologicalOp, CResizeOp, CRotationOp, CShearOp,CTemplateMatchOp, CThresholdOp, and CWarpOp.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_arithmetic_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_color_conversion_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_comparison_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_convolution_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_corner_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_edge_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_gaussian_smooth_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_median_filter_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_morphological_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_shear_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_template_match_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_threshold_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_warp_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_warp_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_threshold_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_template_match_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_shear_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_morphological_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_median_filter_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_gaussian_smooth_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_edge_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_corner_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_convolution_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_comparison_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_color_conversion_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_arithmetic_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    47/77

    CArithmeticOp

    CArithmeticOpprovides basic arithmetic operations forCNokiaCVImages.

    Target and source bitmaps must be of same size.

    Usage:

    IMPORT_C void CArithmeticOp::DoOperation(CNokiaCVImage* aTarget )

    Does the actual operation.

    Parameters:

    aTargetCNokiaCVImageto store the result in. Must be allocatedand created beforehand.

    Implements CImageOp.

    http://localhost/var/www/SVN/Documentation/html/class_c_arithmetic_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_arithmetic_op.html
  • 8/21/2019 Nokia Cv Informational Slides

    48/77

    Image Arithmetic Examples

  • 8/21/2019 Nokia Cv Informational Slides

    49/77

    CColorConversionOp Class

    Provides CNokiaCVImage with color

    conversions.

  • 8/21/2019 Nokia Cv Informational Slides

    50/77

    Functions

    IMPORT_C CColorConversionOp::CColorConversionOp(CNokiaCVImage* aImage, TDisplayMode aTargetMode)

    Constructor. Converts given image to given display mode.

    Parameters: aImageImage to convert aTargetModeTarget display mode Valid

    TDisplayModes for aTargetMode are: EGray2

    EGray4 EGray16

    EGray256

    EColor4K

    EColor64K

    EColor16M

    IMPORT_C void CColorConversionOp::DoOperation(CNokiaCVImage* aTarget )

    Parameters: aTargetCNokiaCVImageto store the result in.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    51/77

    CComparisonOp Class

    Provides CNokiaCVImagewith pixel-wise imagecomparison operations: "greater than", "lessthan" and "equal".

    Matching pixels are set white. Non-matching andpixels outside the comparison region are setblack.

    Valid values are: EGreater

    ELess

    EEqual

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    52/77

    Functions

    IMPORT_C CComparisonOp::CComparisonOp (CNokiaCVImage* aImage1,CNokiaCVImage* aImage2,TComparisonTypeaComparison)Constructor.Parameters: aImage1images to compare aImage2another images to compare.

    aComparisonComparison operation: .EGreater, ELess or EEqual

    IMPORT_C CComparisonOp::CComparisonOp (CNokiaCVImage* aImage1,CNokiaCVImage* aImage2, TComparisonTypeaComparison,TRect aSubregion)Constructor.Parameters: aImage1images to compare aImage2another images to compare. These two images must

    be of same bit depth and same size

    aComparisonComparison operation: .EGreater, ELess or EEqual

    aSubregionsubregion of images 1 and 2 that are compared

    IMPORT_C void CComparisonOp::DoOperation (CNokiaCVImage* aTarget )

    Parameters: aTargetCNokiaCVImageto store the result in. The target bitmap must be black and white.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_comparison_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_comparison_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_comparison_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_comparison_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    53/77

    CConvolutionOp Class

    Convolution operation.

    Performs convolution of CNokiaCVImage

    and a kernel (CNokiaCVMatrix).

    O57 = I56K11+ I58K12+ I59K13+ I67K21+ I68K22+ I69K23

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    54/77

    Functions

    IMPORT_C CConvolutionOp::CConvolutionOp(CNokiaCVImage* aImage, CNokiaCVMatrix& aKernel)Constructor.

    Parameters:

    aImageCNokiaCVImageto use as sourceaKernelCNokiaCVMatrixKernel to use for convolution. Only 3x3and 5x5 matrices are supported.

    IMPORT_C void CConvolutionOp::DoOperation(CNokiaCVImage* aTarget )

    Parameters: aTargetCNokiaCVImageto store the result in.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    55/77

    CCornerDetectionOp

    Corner detection for CNokiaCVImage.

    Moravec corner detector is implemented.

    Defines interest points as points where there

    is a large intensity variation in every direction

    i.e. corners.

  • 8/21/2019 Nokia Cv Informational Slides

    56/77

    Functions

    IMPORT_C CCornerDetectionOp::CCornerDetectionOp(CNokiaCVImage* aImage,TCornerDetectionMethodaMethod= EMoravec,TInt aNeighborhoodSize= 20, TInt aConstant= 25 )Constructor.

    Parameters:

    aImageCNokiaCVImageto detect from aMethodWhich corner detection method to use

    aNeighborhoodSizeSize of the neighborhood to use for adaptivethresholding

    aConstanta constant value to subtract from the mean threshold

    IMPORT_C void CCornerDetectionOp::DoOperation

    (CNokiaCVImage* aTarget )Parameters: aTargetCNokiaCVImageto store the result

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_corner_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_corner_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    57/77

    CEdgeDetectionOp

    Edge detection filters using convolution.

    Possible values are: ESobel

    EPrewitt

    ELaplacian ECanny

    Canny edge detection with different convolution sizes

  • 8/21/2019 Nokia Cv Informational Slides

    58/77

    Functions

    IMPORT_CCEdgeDetectionOp::CEdgeDetectionOp(CNokiaCVImage* aImage,TEdgeDetectionMethodaMethod)Constructor.

    Parameters: aImageCNokiaCVImageto detect from aMethodWhich edgedetection method to use

    IMPORT_C voidCEdgeDetectionOp::DoOperation

    (CNokiaCVImage* aTarget )Parameters: aTargetCNokiaCVImageto store the result

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_edge_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_edge_detection_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    59/77

    CGaussianSmoothOp

    Gaussian smoothing operator.

    The Gaussian smoothing operator is a 2-D

    convolution operator used to `blur' images

    and remove detail and noise.

    The shape of the kernel represents the

    shape of a Gaussian (`bell-shaped') point-

    spread function.

    5 X 5 Gaussian Kernel

  • 8/21/2019 Nokia Cv Informational Slides

    60/77

    Functions

    IMPORT_CCGaussianSmoothOp::CGaussianSmoothOp(CNokiaCVImage* aImage,TInt aKernelSize)Constructor.

    Parameters: aImageCNokiaCVImagea source image aKernelSizeThenumber of rows and columns in Gaussian kernel: Possiblevalues are. 3 and 5.

    IMPORT_C void

    CGaussianSmoothOp::DoOperation(CNokiaCVImage* aTarget )

    Parameters: aTargetCNokiaCVImageto store the result

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    61/77

    CMedianFilterOp

    Median filter operation. The median filter is normally used to reduce noise in an image.

    Does a reasonable job of preserving useful detail in the image.

    Replaces every pixel with the medianof its neighboring pixels.

    Median Filter 3X3

  • 8/21/2019 Nokia Cv Informational Slides

    62/77

    Functions

    IMPORT_C CMedianFilterOp::CMedianFilterOp(CNokiaCVImage* aImage,TInt aKernelRows)Constructor.

    Parameters:

    aImageCNokiaCVImageto use as source aKernelRowsHowbig a kernel to use. Possible values are: 3 for 3x3

    5 for 5x5

    7 for 7x7

    IMPORT_C void CMedianFilterOp::DoOperation

    (CNokiaCVImage* aTarget )Parameters: aTargetCNokiaCVImageto store the result in.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    63/77

    CMorphologicalOp Class

    Dilation/Erosion filter. Here, the state of any given pixel in the output image is

    determined by applying a rule to the corresponding pixeland its neighbors in the input image. The rule used toprocess the pixels defines the operation as a dilation or

    an erosion. Dilation:The value of the output pixel is the maximum

    value of all the pixels in the input pixel's neighborhood.In a binary image, if any of the pixels is set to the value1, the output pixel is set to 1.

    Erosion:The value of the output pixel is the min imumvalue of all the pixels in the input pixel's neighborhood.In a binary image, if any of the pixels is set to 0, theoutput pixel is set to 0.

  • 8/21/2019 Nokia Cv Informational Slides

    64/77

    Functions

    IMPORT_C CMorphologicalOp::CMorphologicalOp(CNokiaCVImage* aImage, CNokiaCVMatrix& aStruct,TMorphologicalOperationaOperation)Constructor.Parameters: aImageCNokiaCVImageto use as source

    aStructCNokiaCVMatrixa structuring element to use for morphing

    aOperationWhich operation to do

    IMPORT_C void CMorphologicalOp::DoOperation(CNokiaCVImage* aTarget )Parameters: aTargetCNokiaCVImageto store the result in.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_morphological_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_morphological_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    65/77

    CResizeOp Class

    Resizes the CNokiaCVImage.

    IMPORT_C CResizeOp(CNokiaCVImage*aImage, TBool

    aBilinear=EFalse)Constructor.

    IMPORT_C void DoOperation(CNokiaCVImage*aTarget)

    Do the actual resize. Take the new size

    from target image and store the result in it.

    http://localhost/var/www/SVN/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_resize_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_resize_op.html
  • 8/21/2019 Nokia Cv Informational Slides

    66/77

    CRotationOp Class

    Rotates a CNokiaCVImage.

    Implements an arbitrary angle rotation.

    IMPORT_C CRotationOp

    (CNokiaCVImage*aImage, TIntaAngle) Constructor.

    IMPORT_C void DoOperation(CNokiaCVImage*aTarget)

    Do the actual operation.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_rotation_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    67/77

    CShearOp Class

    Shear operation for CNokiaCVImage.

    Shears bitmap Horizontally or Vertically (createsa parallelogram).

    IMPORT_C CShearOp(CNokiaCVImage*aImage, TInt aAngle, TDirectionaDirection=EHorizontal)Constructor.

    IMPORT_C void DoOperation(CNokiaCVImage*aTarget)

    Do the actual operation.

    http://localhost/var/www/SVN/Documentation/html/class_c_shear_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_shear_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_shear_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_shear_op.html
  • 8/21/2019 Nokia Cv Informational Slides

    68/77

    CTemplateMatch Class

    Template matching operation for two CNokiaCVImages. Used for finding small parts of an image that match a

    template image.

    Algorithm:

    This method is implemented by first creating a subimage (thetemplate).

    The center of the subimage is simply moved over each (x,y)point in the a candidate image.

    The sum of products between the coefficients in the candidateimage and the corresponding neighborhood pixels in the areaspanned by the template is calculated to determine best match.

    Also applicable for color images.

  • 8/21/2019 Nokia Cv Informational Slides

    69/77

    Functions

    IMPORT_C CTemplateMatchOp::CTemplateMatchOp(CNokiaCVImage* aImage, CNokiaCVImage* aTemplate)Constructor for template matching operation.

    Parameters: aImageCNokiaCVImageto match against aPattern

    CNokiaCVImagecontaining the template to match

    IMPORT_C void CTemplateMatchOp::DoOperation(CNokiaCVImage* aTarget= NULL )Parameters: aTargetCNokiaCVImageto store the resulting correlation values

    Implements CImageOp.

    IMPORT_C void CTemplateMatchOp::DoOperation (TPoint& aPoint, CNokiaCVMatrix* aCorrMatrix= NULL )Parameters: aPointresulting matching poin

    aCorrMatrixcorrelation matrix

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_matrix.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_image_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    70/77

    CThresholdOp

    Provides CNokiaCVImagewith a threshold operation. Thresholding is the most common method of segmenting images into

    particle regions and background regions.

    Creates an black and white bitmap from CNokiaCVImageby thresholding.

    Implements two thresholding methods: simple with static threshold value

    Local adaptive: Selects an individual threshold for each pixel based on the rangeof intensity values in its local neighborhood. This allows for thresholding of animage whose global intensity histogram doesn't contain distinctive peaks.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    71/77

    Functions

    IMPORT_C CThresholdOp::CThresholdOp (CNokiaCVImage* aImage,TUint8 aThresholdValue)Constructor for thresholding with given value.

    Parameters: aImageCNokiaCVImageto apply the thresholding to.

    aThresholdValuean integer value (0-255) to use as a threshold.

    IMPORT_C CThresholdOp::CThresholdOp (CNokiaCVImage* aImage,TInt aSize, TInt aConstant, TThresholdType= EMean )Constructor for adaptive thresholding.

    Parameters: aImageCNokiaCVImageto apply the thresholding to.

    aSizeaSize x aSize neighborhood to use for adaptation

    aConstantConstant value that is subtracted from the mean.

    IMPORT_C void CThresholdOp::DoOperation (CNokiaCVImage* aTarget )Parameters: aTargetCNokiaCVImageto store the result in.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_threshold_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_threshold_op.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    72/77

    CWarpOp Class

    Provides CNokiaCVImagewith a warp operation Theresult of the operation is like dragging an elastic imagefrom one point to a given direction.

    IMPORT_C CWarpOp::CWarpOp (CNokiaCVImage* aImage, TPoint aSource,

    TPoint aDestination)Constructor.

    Parameters: aImageSource image. aSourceSource point to start the warp

    from. aDestinationDestination point to warp towards.

    IMPORT_C void CWarpOp::DoOperation(CNokiaCVImage* aTarget )Parameters: aTargetCNokiaCVImageto store the result in.

    http://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.htmlhttp://localhost/var/www/SVN/Documentation/html/class_c_nokia_c_v_image.html
  • 8/21/2019 Nokia Cv Informational Slides

    73/77

    Demos

  • 8/21/2019 Nokia Cv Informational Slides

    74/77

    Outline

    Cube

    Motion Estimation

    Image Processing

    Game

  • 8/21/2019 Nokia Cv Informational Slides

    75/77

    Cube Using a cube to represent camera movement

    Obtaining optical flow using Camus algorithm

    Mean movement of optical flowCubes movement

    along x and y

    Mean rotation of optical flowCubes rotation

    Depth info: movement along z axis Cubes size

    NokiaCV classes used

    CCamus

    CEgoMovement COpticalFlow

    CNokiaCVImage

    CPixelAccess

  • 8/21/2019 Nokia Cv Informational Slides

    76/77

    Motion Estimation

    Calculate and display motion history image

    Calculate optical flow, indicate horizontal and

    vertical motion

    NokiaCV classes used CMotionHistoryImage

    CNokiaCVImage

    CCamus

    COpticalFlow

  • 8/21/2019 Nokia Cv Informational Slides

    77/77

    Image Processing

    Loads two images

    Perform image processing based on user

    selection

    NokiaCV classes used

    All image processing classes