Você está na página 1de 64

Introduccion al uso de OpenCV (2)

Dr. J.B. Hayet


EN MATEMATICAS

CENTRO DE INVESTIGACION

Agosto 2007

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

1 / 64

Outline
1

OpenCV : funcionalidades de procesamiento de imagenes

OpenCV : funcionalidades de geometra

OpenCV y IPP

Usando scripts : los wrappers Python

Tricks

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

2 / 64

Procesamiento de im
agenes con OpenCV

OpenCV contiene un gran numero de funcionalidades entre las mas


clasicas de procesamiento de imagenes : filtrados, derivacion,
operadores morfologicos. . .
Recorrer la documentacion para verificar si una funcion dada esta
implementada o no.

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

3 / 64

Image Processing
Gradients, Edges and Corners
Sampling, Interpolation and Geometrical Transforms
Morphological Operations
Filters and Color Conversion
Pyramids and the Applications
Image Segmentation, Connected Components and Contour
Retrieval
Image and Contour Moments
Special Image Transforms
Histograms
Matching
,
J.B. Hayet

OpenCV parte 2, Agosto 2007

4 / 64

Structural Analysis

Contour Processing
Computational Geometry
Planar Subdivisions

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

5 / 64

Motion Analysis and Object Tracking

Accumulation of Background Statistics


Motion Templates
Object Tracking
Optical Flow
Estimators

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

6 / 64

Pattern Recognition

Object Detection

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

7 / 64

Camera Calibration and 3D Reconstruction

Camera Calibration
Pose Estimation
Epipolar Geometry

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

8 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Outline
1

OpenCV : funcionalidades de procesamiento de imagenes

OpenCV : funcionalidades de geometra

OpenCV y IPP

Usando scripts : los wrappers Python

Tricks

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

9 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Conversi
on entre espacios de color

v o i d c v C v t C o l o r ( const CvArr s r c , CvArr d s t ,


i n t code ) ;

Con el code de la forma siguiente CV ESPA12ESPA2, donde ESPA1


y ESPA2 pueden ser entre : BGR, RGB, XYZ, YCrCb, HSV

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

10 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Umbral

Umbral :
double c v T h r e s h o l d ( const CvArr s r c ,
CvArr d s t , double t h r e s h o l d ,
double m a x v a l , i n t t h r e s h t y p e ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

11 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Filtros
v o i d c v F i l t e r 2 D ( const CvArr s r c , CvArr d s t ,
const CvMat k e r n e l ,
C v P o i n t a n c h o r=c v P o i n t ( 1 , 1));

Ejemplo de uso:
CvMat k e r n e l = c v C r e a t e M a t ( 1 1 , 1 1 , CV 32F ) ;
cvSet ( kernel ,
c v S c a l a r ( 1 . / ( k e r n e l >rows k e r n e l >c o l s ) ) ) ;
c v F i l t e r 2 D (A , B , k e r n e l ,
c v P o i n t ( k e r n e l >c o l s / 2 ,
k e r n e l >rows / 2 ) ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

12 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Filtros : smoothing

Una funcion de smoothing mas especializada que cvFilter2D :


v o i d cvSmooth ( const CvArr s r c , CvArr d s t ,
i n t s m o o t h t y p e=CV GAUSSIAN ,
i n t param1 =3, i n t param2 =0,
double param3 =0, double param4=0 ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

13 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Filtros : smoothing

Tipos de filtraje con cvSmooth:


#
#
#
#
#

CV BLUR NO SCALE
CV BLUR ( s i m p l e b l u r )
CV GAUSSIAN ( g a u s s i a n b l u r )
CV MEDIAN ( median b l u r )
CV BILATERAL

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

14 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Derivadas y bordos
Sobel, Canny
v o i d c v S o b e l ( const CvArr s r c , CvArr d s t ,
int xorder , int yorder ,
i n t a p e r t u r e s i z e =3);
v o i d cvCanny ( const CvArr image , CvArr e d g e s ,
double t h r e s h o l d 1 ,
double t h r e s h o l d 2 , i n t a p e r t u r e s i z e =3);

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

15 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Derivadas y bordos

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

16 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Derivadas y bordos

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

17 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Laplaciano

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

18 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Im
agenes integrales

Pueden revelarse muy utiles para calculos muy rapidos de sumas


sobre ventanas (las Haar wavelets por ejemplo).
v o i d c v I n t e g r a l ( const CvArr image , CvArr sum ,
CvArr sqsum=NULL , CvArr t i l t e d s u m=NULL ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

19 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Pir
amides gausianas

Muy utiles para razonamiento multi-escala :


Down-sampling y filtrado gausiano :
v o i d cvPyrDown ( const CvArr s r c , CvArr d s t ,
i n t f i l t e r =CV GAUSSIAN 5x5 ) ;

Up-sampling :
v o i d cvPyrUp ( const CvArr s r c , CvArr d s t ,
i n t f i l t e r =CV GAUSSIAN 5x5 ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

20 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Pir
amides gausianas

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

21 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Morfologa matem
atica
Flexibilidad en la definicion del elemento estructurante
IplConvKernel cvCreateStructuringElementEx (
i n t c o l s , i n t rows ,
i n t anchx , i n t anchy ,
i n t shape ,
i n t v a l u e s=NULL ) ;
c v R e l e a s e S t r u c t u r i n g E l e m e n t ( I p l C o n v K e r n e l e l ) ;

Elemento no necesariamente simetrico (anchor)

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

22 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Morfologa matem
atica

Formas soportadas
CV SHAPE RECT
CV SHAPE CROSS
CV SHAPE ELLIPSE
CV SHAPE CUSTOM

En caso de CUSTOM, se usan los valores del arreglo values

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

23 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Morfologa matem
atica

Operadores basicos :
v o i d c v E r o d e ( const CvArr s r c , CvArr d s t ,
I p l C o n v K e r n e l e l e m e n t=NULL , i n t i t e r a t i o n s =1);
v o i d c v D i l a t e ( const CvArr s r c , CvArr d s t ,
I p l C o n v K e r n e l e l e m e n t=NULL , i n t i t e r a t i o n s =1);

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

24 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Morfologa matem
atica

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

25 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Puntos de inter
es
Todos los metodos implementados son basados en la matriz de
autocorrelacion :
v o i d c v C o r n e r M i n E i g e n V a l ( const CvArr img , CvArr e i g ,
i n t b l o c k s i z e , i n t a p s i z e =3);
v o i d c v C o r n e r H a r r i s ( const CvArr image , CvArr d s t ,
i n t b l o c k s i z e , i n t a p s i z e =3,
double k =0.04 ) ;
v o i d c v F i n d C o r n e r S u b P i x ( const CvArr img ,
CvPoint2D32f c o r n e r s ,
i n t count ,
C v S i z e win , C v S i z e z e r o z o n e ,
CvTermCriteria c r i t e r i a ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

26 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

LK tracking

Metodo de Lucas-Kanade para el seguimiento de puntos de interes


(funciona bien para puntos de tipo esquinas, detectados por los
operadores vistos antes)
v o i d c v C a l c O p t i c a l F l o w L K ( const CvArr p r e v ,
const CvArr c u r r ,
CvSize win size ,
CvArr v e l x , CvArr v e l y ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

27 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

LK tracking

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

28 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Histogramas

t y p e d e f s t r u c t CvHis t ogram {
int
type ;
CvArr b i n s ;
float
t h r e s h [ CV MAX DIM ] [ 2 ] ; / u n i f o r m h i s t . /
f l o a t t h r e s h 2 ; / nonu n i f o r m h i s t . /
CvMatND mat ; / m a t r i x h e a d e r f o r a r r a y h i s t . /
} Cv His togram ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

29 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Histogramas

Cv His t ogram c v C r e a t e H i s t ( i n t dims , i n t s i z e s ,


i n t type ,
f l o a t r a n g e s=NULL ,
i n t u n i f o r m=1 ) ;
v o i d c v R e l e a s e H i s t ( Cv His to gram h i s t ) ;
v o i d c v N o r m a l i z e H i s t ( CvH is tog ram h i s t , double f a c t o r
v o i d c v C a l c H i s t ( I p l I m a g e image , Cv His to gram h i s t ,
i n t a c c u m u l a t e =0, const CvArr mask=N
#d e f i n e c v Q u e r y H i s t V a l u e 1 D ( h i s t , i d x 0 ) \
c vGetReal1D ( ( h i s t )>b i n s , ( i d x 0 ) )
#d e f i n e c v Q u e r y H i s t V a l u e 2 D ( h i s t , i d x 0 , i d x 1 ) \
c vGetReal2D ( ( h i s t )>b i n s , ( i d x 0 ) , ( i d x 1 ) )
#d e f i n e c v Q u e r y H i s t V a l u e 3 D ( h i s t , i d x 0 , i d x 1 , i d x 2 )
c vGetReal3D ( ( h i s t )>b i n s , ( i d x 0 ) , ( i d x 1 ) , ( i d x 2 )
,
J.B. Hayet

OpenCV parte 2, Agosto 2007

30 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Histogramas : ejemplo

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

31 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Histogramas : comparaci
on
Varias metricas para histogramas :
double c v C o m p a r e H i s t ( const Cv His t ogram h i s t 1 ,
const Cv His t ogram h i s t 2 ,
i n t method ) ;
CV COMP CORREL
CV COMP CHISQR
CV COMP INTERSECT
CV COMP BHATTACHARYYA

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

32 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Transformada de Hough
Metodo clasico de acumulacion para la deteccion de objetos
parametrizados :
CvSeq c v H o u g h L i n e s 2 ( CvArr img , v o i d l i n e s t o r a g e ,
i n t method ,
double rho , double t h e t a ,
int thresh ,
double p a r 1 =0, double p a r 2 =0);
CvSeq c v H o u g h C i r c l e s ( CvArr img , v o i d c i r c s t o r a g e ,
i n t method ,
double dp , double m i n d i s t ,
double p a r 1 =100 ,
double p a r 2 =100 ,
i n t m i n r a d i u s =0,
i n t m a x r a d i u s =0);
,
J.B. Hayet

OpenCV parte 2, Agosto 2007

33 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Transformada de Hough : lineas rectas

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

34 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Transformada de Hough : crculos

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

35 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Detecci
on de caras
Un ejemplo que viene por default con OpenCV:

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

36 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Ada-boost con Haar wavelets

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

37 / 64

OpenCV : funcionalidades de procesamiento de im


agenes

Ada-boost con Haar wavelets


La idea es hacer deteccion de objetos de una clase dada usando una
cascada de clasificadores debiles (tpicamente, por una de las Haar
wavelets)
CvSeq c v H a a r D e t e c t O b j e c t s ( const CvArr image ,
CvHaarClassifierCascade c
CvMemStorage s t o r a g e ,
double s c a l e f a c t o r =1.1 ,
i n t m i n n e i g h b o r s =3,
i n t f l a g s =0,
C v S i z e m i n s i z e=c v S i z e ( 0 , 0 )

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

38 / 64

OpenCV : funcionalidades de geometra

Outline
1

OpenCV : funcionalidades de procesamiento de imagenes

OpenCV : funcionalidades de geometra

OpenCV y IPP

Usando scripts : los wrappers Python

Tricks

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

39 / 64

OpenCV : funcionalidades de geometra

Calibraci
on

Por el momento, viene implementado un metodo clasico basado en


motivo 3D (Tsai) para estimar parametros intrinsecos y extrinsecos.
Ademas tiene las herramientas necesarias para usarla muy
simplemente en casos planos (deteccion de motivos de tipo ajedrez)

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

40 / 64

OpenCV : funcionalidades de geometra

Calibraci
on
Funcion de calibracion :
v o i d c v C a l i b r a t e C a m e r a 2 ( const CvMat o b j e c t p o i n t s ,
const CvMat i m a g e p o i n t s ,
const CvMat p o i n t c o u n t s ,
CvSize image size ,
CvMat i n t r i n s i c m a t r i x ,
CvMat d i s t o r t i o n c o e f f s ,
CvMat r o t v e c t o r s=NULL ,
CvMat t r a n s v e c t o r s=NULL ,
i n t f l a g s =0 ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

41 / 64

OpenCV : funcionalidades de geometra

Calibraci
on

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

42 / 64

OpenCV : funcionalidades de geometra

Calibraci
on: distorsi
on radial y tangencial

Correccion de la distorsion :
v o i d c v U n d i s t o r t 2 ( const CvArr s r c , CvArr d s t ,
const CvMat i n t r i n s i c m a t r i x ,
const CvMat d i s t o r t i o n c o e f f s ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

43 / 64

OpenCV : funcionalidades de geometra

Calibraci
on : distorsi
on radial y tangencial

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

44 / 64

OpenCV : funcionalidades de geometra

Calculo de transformaciones geom


etricas
v o i d cvFindHomography ( const CvMat s r c p o i n t s ,
const CvMat d s t p o i n t s ,
CvMat homography ) ;
i n t c v F i ndF undam en t a lM a t ( const CvMat p o i n t s 1 ,
const CvMat p o i n t s 2 ,
CvMat f u n d a m e n t a l m a t r i x ,
int
method=CV FM RANSAC ,
double param1 =1. ,
double param2 =0.99 ,
CvMat s t a t u s=NULL ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

45 / 64

OpenCV : funcionalidades de geometra

Estimaci
on de la pose (c
amara calibrada)

v o i d cvPOSIT ( CvPOSITObject p o s i t o b j e c t ,
CvPoint2D32f i m a g e p o i n t s ,
double f o c a l l e n g t h ,
CvTermCriteria c r i t e r i a ,
CvMatr32f r o t a t i o n m a t r i x ,
CvVect32f t r a n s l a t i o n v e c t o r ) ;

La estructura CvPOSITObject contiene los puntos 3D del objeto


sobre el cual nos localizamos.

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

46 / 64

OpenCV : funcionalidades de geometra

Geometra epipolar

Lineas epipolares correspondientes de unos puntos 2D


void cvComputeCorrespondEpilines (
const CvMat p o i n t s ,
i n t which image ,
const CvMat f u n d a m e n t a l m a t r i x ,
CvMat c o r r e s p o n d e n t l i n e s ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

47 / 64

OpenCV y IPP

Outline
1

OpenCV : funcionalidades de procesamiento de imagenes

OpenCV : funcionalidades de geometra

OpenCV y IPP

Usando scripts : los wrappers Python

Tricks

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

48 / 64

OpenCV y IPP

IPP

IPP (Integrated Performance Primitives) es una parte de las


bibliotecas de computo desarrolladas por Intel para aprovechar
de las caractersticas mas avanzadas de sus procesadores
(SIMD)
Provee funciones soportando el multi-core, y muy bien
optimizadas
Soporte 64 bits

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

49 / 64

OpenCV y IPP

IPP : d
onde esta la magia ?

Funcionalidad SIMD (single instruction, multiple data) :


registros de 64 o 128 bits.
Un registro de 128 bits puede contener 4 int, 4 float
Intel: MMX y luego SSE (Streaming SIMD extension)
En general, adaptado a toda clase de problemas vectorizables
(muchos tratamientos locales independientes
Cuidado al alineamiento de los datos

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

50 / 64

OpenCV y IPP

IPP: Scope

Video encoding/decoding
Procesamiento
de
imagenes
Vectores y matrices
Procesamiento del hablar

Audio decoding/encoding
Vision
JPEG/JPEG2000
Rendido

Compresion de datos
Procesamiento
se
nal
Criptografia
...

de

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

51 / 64

OpenCV y IPP

Ejemplo

I p p S t a t u s ippiRGBToGray <mod>(
const Ipp <d a t a t y p e > pSrc , i n t s r c S t e p ,
Ipp <d a t a t y p e > pDst , i n t d s t S t e p , I p p i S i z e r o i S i z e ) ;

Valores de mod:
8u C3C1R 16 u C3C1R 16 s C3C1R 32 f C3C1R
8u AC4C1R 16 u AC4C1R 16 s AC4C1R 32 f AC4C1R

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

52 / 64

OpenCV y IPP

Cuanto se mejoran las performancias

Tipo de funcionalidad Incremento de velocidad


Piramides gausianas
3
Morfologa
3 7
Convolucion linear
2 8
Conversion color
1 3
Deteccion de esquinas
1.8

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

53 / 64

OpenCV y IPP

IPP y OpenCV

Llamadas a funciones estan integradas a una gran parte de


OpenCV
Se decide en el tiempo de la ejecucion si se usa o no IPP
Para que se use, se necesita poner unas variables de entorno
(de tal manera que las libreras de IPP esten en el path)

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

54 / 64

OpenCV y IPP

IPP y OpenCV
Verificar que s se usa IPP:
const char p l u g i n i n f o= 0 ;
c v G e t M o d u l e I n f o (0 , 0 ,& p l u g i n i n f o ) ;
i p p i s u s e d= ( p l u g i n i n f o != 0 ) &&
s t r s t r ( p l u g i n i n f o , ipp )!=0;

Apagar el uso de IPP y ponerlo otra vez:


cvUseOptimized ( 0 ) ;

. . . cvUseOptimized ( 1 ) ;

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

55 / 64

Usando scripts : los wrappers Python

Outline
1

OpenCV : funcionalidades de procesamiento de imagenes

OpenCV : funcionalidades de geometra

OpenCV y IPP

Usando scripts : los wrappers Python

Tricks

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

56 / 64

Usando scripts : los wrappers Python

Python y OpenCV

Uso de Python ideal para prototipos, preparar demos


Wrappers generados automaticamente (SWIG)
Instalado automaticamente (necesita SWIG)
Memoria manejada automaticamente

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

57 / 64

Usando scripts : los wrappers Python

Python y OpenCV
No hay IplImage aca, solo CvMat
Iteratores
x = c v C r e a t e M a t (m, n , t y p e )
f o r row i n x :
# row i s same a s t h a t r e t u r n e d by cvGetRow

o:
for col in x . colrange ( ) :
# c o l i s same a s t h a t r e t u r n e d by c v G e t C o l

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

58 / 64

Usando scripts : los wrappers Python

Python y OpenCV

Aceso por el operador [], notaciones a la Matlab


col = x [: , i ]
s l i c e = x [0:10 , 0:10]
elem1 = x [ i , j ]
elem2 = x [ i ] [ j ]
x [: , :] = 1
x [0:10 , i ] = [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9]

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

59 / 64

Usando scripts : los wrappers Python

Python y OpenCV

Informacion muy util en cuanto a la interfase Python :


http://opencvlibrary.sourceforge.net/PythonInterface

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

60 / 64

Tricks

Outline
1

OpenCV : funcionalidades de procesamiento de imagenes

OpenCV : funcionalidades de geometra

OpenCV y IPP

Usando scripts : los wrappers Python

Tricks

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

61 / 64

Tricks

Uso de la memoria

La memoria esta manejada `a la C: cuidado de bien liberar los


espacios reservados por las funciones de tipo Create o Clone.
cvReleaseImage
cvReleaseMat
...

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

62 / 64

Tricks

Soporte de funciones en sitio

Checar en la documentacion si la funcion que se usa soporta un


procesamiento en sitio (dst=src). Una mayora de funciones s lo
soportan.

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

63 / 64

Tricks

Alineaci
on de datos

Para optimizar el tratamiento de los datos, es mejor alinear las lineas


sobre 4 o 8 octetos (es automatico con funciones de tipo create)

,
J.B. Hayet

OpenCV parte 2, Agosto 2007

64 / 64

Você também pode gostar