nokia cv informational slides
TRANSCRIPT
-
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