Вы находитесь на странице: 1из 9

Procesamiento de Imgenes Guin de Prcticas

Sesin 2. Instalacin y uso de OpenCV en Qt Creator


Procesamiento de Imgenes
Mster NI
Guin de prcticas
Sesin 2. !so de OpenCV en Qt Creator
DESCRIPCIN
OpenCV (Open Source Computer Vision Librar! es una li"rer#a de $unciones en
C y C%% &ue contiene un con'unto de utilidades de procesamiento de imgenes(
)isin arti$icial( reconocimiento de patrones( captura de )#deo y )isuali*acin de
imgenes. +s de cdigo a"ierto( gratuita( multiplata$orma ,disponi"le para entornos
MS -indo.s( Mac OS y /inu01( rpida( de $cil uso y en continuo desarrollo.
Pginas .e" de OpenCV2
3ttp244openc).org
OpenCV $ue desarrollada originalmente por Inte". 5ctualmente es un proyecto li"re
pu"licado "a'o "icencia #SD( lo &ue permite su uso tanto para aplicaciones
comerciales como no comerciales.
!saremos OpenCV $%&%'%(( &ue $ue pu"licada en 'ulio de 2678.
7
OpenCV
9escripcin
Instalacin
!so de la li"rer#a
+l tipo imagen
Crear imgenes
+4S "sica
:esumen
Procesamiento de Imgenes Guin de Prcticas
Sesin 2. Instalacin y uso de OpenCV en Qt Creator
INS)*L*CIN DE OpenCV $%&%'
;. /os arc3i)os de la li"rer#a OpenCV 2.<.=.6 se pueden descargar en2
3ttp244source$orge.net4pro'ects4openc)li"rary
,Igual &ue di'imos con Qt( es posi"le &ue en este momento e0ista alguna )ersin
ms reciente de OpenCV. Por compati"ilidad( recomendamos usar para nuestras
prcticas la )ersin 2.<.=.1
=. +l pro"lema es &ue la distri"ucin o$icial de"e ser recompi"ada completamente para
poder ser usada con Qt Creator. >ay &ue con$igurarla con C+a,e $%-%.. y compilarla
con +inG/ &%-%(. Por lo tanto( para e)itarnos todos estos pasos( usaremos una
distri"ucin propia preparada para Qt Creator 2.?.2@ la llamaremos OpenCV 2.<.=.g.
?. Descar0ar el $ic3ero2
3ttp244dis.um.es4Aginesgm4$iles4doc4pa)4openc)2.<.=.g.*ip
B. Descomprimir el CIP en C12OpenCV$%&%' conser)ando todos los directorios del
arc3i)o. odos los documentos se de"en instalar "a'o este directorio.
D. Para completar la instalacin( de"emos incluir en el P*)3 de" sistema el directorio
donde se encuentran las 9// de OpenCV. Para ello( de"emos ir a2 Pane" de Contro" 4
Sistema 4 Con5i0uracin a6an7ada de" sistema 4 Opciones a6an7adas 4 Variab"es
de entorno8 4 Variab"es de" sistema. Seleccionamos la )aria"le llamada Pat9 y le
damos al "otn Editar8 Se a"re una )entana para editar su )alor. 9entro de Va"or de
"a 6ariab"e1 al $inal de lo &ue 3aya escrito aEadimos lo siguiente ,o"ser)ar &ue el punto
y coma sir)e para separar entradas del path12
@C2FOpenCV2.<.=F"in@C2FQtFQt;.7.6F;.7.6Fming.<BG82F"in
/uego le damos a *ceptar a todas las )entanas &ue tenemos a"iertas.
76. Vamos a anali*ar a3ora la estructura de directorios creada en la li"rer#a2
C12OpenCV$%&%'
bin H 5rc3i)os 9// ,9ynamic /inI /i"rary1( y algunos e'ecuta"les de
prue"a( test e in$ormacin de las li"rer#as.
modu"es H Cdigo $uente del nJcleo de la li"rer#a ,core1( y de los
distintos mdulos de procesamiento de imgenes ,im0proc1( deteccin
de o"'etos ,ob:detect1( entrada4salida ,9i090ui1( etc.
inc"ude2openc6$ H Contiene los $ic3eros de ca"ecera necesarios para
incluir en los programas C4C%%. +l importante es2 openc6$2openc6%9pp.
docs H 9ocumentacin de las li"rer#as. /a parte principal de la
documentacin ,el manual de re$erencia de OpenCV1 est en el $ic3ero
openc6$re5man%pd5.
"ib H Kic3eros de descripcin de las li"rer#as. Necesarios para usar las
9// en nuestros programas de Qt Creator.
samp"es2c y samp"es2cpp H Programas sencillos en C y C%% &ue
muestran di)ersas $unciones de OpenCV.
2
Procesamiento de Imgenes Guin de Prcticas
Sesin 2. Instalacin y uso de OpenCV en Qt Creator
;rdpart( apps( cma,e( data( p"at5orms H Otros directorios &ue en
principio no nos interesan. Contienen cdigo $uente de los e'emplos y de
otras partes del proyecto. :ecordar &ue OpenCV es de cdigo a"ierto.
77. +'ecutar los e'emplos de samp"es2c y samp"es2cpp y o"ser)ar el cdigo de alguno de
ellos. O'o( puede &ue algunos no $uncionen( por&ue necesitan una cmara o parmetros
adicionales.
72. +c3ar un )ista*o a la documentacin ,openc)2re$man.pd$ y openc)Gc3eats3eet.pd$1.
<SO DE L* LI#RER=* OPENCV CON >) CRE*)OR
78. /a utili*acin de OpenCV en >t Creator permite apro)ec3ar la potencia de la primera
para el procesamiento e$iciente de imgenes y )#deo( y la 5aci"idad de la segunda para
el desarrollo rpido de aplicaciones interacti)as en entornos de )entanas. 5dems(
am"as son multiplata$orma.
7<. +l cdigo de las li"rer#as se encuentra en 5ic9eros DLL ,Dynamic Link Library1( como
"ibopenc6?core$&'%d""( "ibopenc6?im0proc$&'%d"" y "ibopenc6?9i090ui$&'%d"". /os
$ic3eros 9// contienen cdigo o"'eto ,cdigo e'ecuta"le1 &ue se enla*a de $orma
dinmica con la aplicacin. Por lo tanto( nuestros programas usan estas li"rer#as( pero
no las incluyen en su cdigo. Los 5ic9eros DLL deben estar accesib"es@ o bien en e"
mismo directorio de" pro0rama o en e" P*)3 de" sistema% Por lo tanto( para
distribuir nuestros pro0ramas a otras personas( de"emos copiar esos arc3i)os 9//
en el mismo directorio del e'ecuta"le.
7;. Para poder usar OpenCV en nuestros proyectos necesitamos( "sicamente( dos cosas2
,a1 dentro del cdigo( poner los Ainc"udes de los $ic3eros de ca"ecera adecuados@ y ,"1
dentro del proyecto de Qt Creator( aEadir los $ic3eros de descripcin de las 9//( con
e0tensin %d""%a.
7=. Vamos a ponernos manos a la o"ra. *brir >t Creator. Crear un nue6o proecto de
tipo >+ain/indoB ,)er los pasos del ? al 7< de la sesin 71. Vamos a )er a3ora todo lo
necesario para poder usar OpenCV en este proyecto.
7?. 9entro del modo +dit( abrir e" 5ic9ero principa" de" proecto ,el $ic3ero con e0tensin
%pro1.
7B. *Cadir las siguientes l#neas al $inal de dic3o $ic3ero2
INCLUDEPATH += "C:\OpenCV2.4.6\include"
LI! += "L"C:\OpenCV2.4.6\li#"\
"lli#$penc%&c$'e246\
"lli#$penc%&i()p'$c246\
"lli#$penc%&*i)*)ui246
/a primera de estas l#neas aEade el directorio de OpenCV al path de "Js&ueda de
los $ic3eros de ca"ecera. /as siguientes sir)en para aEadir los $ic3eros de
descripcin de las li"rer#as 9// ,se re$ieren a los $ic3eros %d""%a1.
7D. Kinalmente( en todos los mdulos del programa &ue usen OpenCV de"emos aCadir "as
dos si0uientes "Dneas2
8
Procesamiento de Imgenes Guin de Prcticas
Sesin 2. Instalacin y uso de OpenCV en Qt Creator
#include <opencv2/opencv.hpp>
using namespace cv;
26. Vamos a3ora a aCadir a"0o de cdi0o al proyecto( para compro"ar &ue todo 3a ido
"ien. 5Eadimos al principio del cdigo2 #include <QFileDialog> 9espuLs aEadimos
un "otn al $ormulario. +n el slot c"ic,ed(! asociado a su pulsacin escri"imos el
siguiente cdigo2
void MainWindow::on_pushu!!on_clic"ed#$
%
Q&!'ing nom('e) QFileDialog::ge!*penFile+ame#$;
Ma! img) im'ead#nom('e.!o&!d&!'ing#$$;
namedWindow#,-magen,. W-+D*W_+*/M01$;
imshow#,-magen,. img$;
2
27. Guardar el proyecto y e'ecutarlo. MSe 3a compilado "ienN MSe )e la imagen al pulsar el
"otnN Si la respuesta es s#( todo 3a ido per$ecto. +n otro caso( )ol)er a repasar los
pasos anteriores. Si sigue sin $uncionar( preguntar al pro$esor.
EL )IPO DE D*)OS I+*GEN1 +,-
22. !na )e* &ue sa"emos utili*ar la li"rer#a OpenCV en Qt Creator( )amos a empe*ar a
mane'ar imgenes y las operaciones "sicas de entrada4salida.
28. +l tipo $undamental de OpenCV( el &ue nos permite representar imgenes( es el tipo
+at. /as imgenes pueden tener 7( 2( 8 < canales( y distintos tipos de pro$undidad.
/as )aria"les para imgenes sern siempre de tipo2 +at. /a reser)a y li"eracin de las
imgenes las reali*a OpenCV de $orma automtica.
2<. /os propiedades $undamentales del tipo +at son2
i().c$l. anc3o de la imagen ,en p#0eles1
i().'$/. alto de la imagen ,en p#0eles1
i().dep-*01 pro$undidad de los p#0eles ,34_56. 34_5&. 34_786. 34_78&.
34_92&. 34_92F y 34_8:F1.
i().c*,nnel.01 nJmero de canales de la imagen ,normalmente 7 81
2;. +n el anterior cdigo( aEadir al $inal las siguientes l#neas2
;De(ug#,0nchu'a)<d. al!u'a)<d,. img.cols. img.'ows$;
;De(ug#,='o>undidad)<d. canales)<d,. img.dep!h#$. img.channels#$$;
2=. +n memoria las imgenes siempre estn descomprimidas. +l puntero i().d,-,
apunta a la matri* de p#0eles de la imagen ,los datos en crudo1. Normalmente no
accederemos a los p#0eles directamente( sino &ue usaremos $unciones de la li"rer#a.
2?. +0isten di$erentes $ormas posi"les de crear una nue)a imagen2
2?.7. Creando una nue)a imagen vaca2 create.
2?.2. /eyendo una imagen desde un $ic3ero2 imread.
2?.8. Clonando una imagen e0istente2 c"one.
<
+at2 el tipo de datos para las imgenes.
imread2 $uncin para leer una imagen
,de"emos seleccionar un $ic3ero
e0istente1
named/indoB2 crear una )entana
Procesamiento de Imgenes Guin de Prcticas
Sesin 2. Instalacin y uso de OpenCV en Qt Creator
2B. 5dems( cuando una $uncin de OpenCV de)uel)e una imagen( la propia $uncin se
encarga de crear la imagen con el tamaEo adecuado.
CRE*R I+EGENES N<EV*S
2D. Para crear una ima0en 6acDa podemos 3acerlo de dos $ormas di$erentes2
2D.7. Crear la imagen en la dec"aracin de "a 6ariab"e1
+,- i(,)en0,l-u',2 ,nc*u',2 -ip$ 32 c$l$'415
2D.2. :edimensionar una imagen dec"arada pre6iamente1
+,- i(,)en5
i(,)en.c'e,-e0,l-u',2 ,nc*u',2 -ip$ 32 c$l$'415
2D.8. +l parmetro tipo indica la pro$undidad de los p#0eles y el nJmero de canales.
Puede ser2 CVGB!C7( CVGB!C2( CVGB!C8( CVG7=SC7( CVG7=!C8( CVG82KC2(
etc. Se puede usar la macro2 34_M0?@_AB=@#p'o>undidad. canales$
2D.<. +l parmetro co"or indica el color inicial de la imagen. /os colores se
representan mediante e" tipo de datos Sca"ar. Se pueden de$inir colores con las
$unciones2 &cala'#aCul. ve'de. 'oDo$ o con 34_/E#'oDo. ve'de. aCul$. Si
no se indica color( por de$ecto no se iniciali*an los p#0eles de la imagen.
86. +'emplo( aEadir un "otn ONue)aP al $ormulario y asociarle el siguiente cdigo2
Ma! img#7FG. 2GG. 34_5639$;
namedWindow#,+ueva,$;
imshow#,+ueva,. img$;
86.7. MQuL se )eN MPor &uLN +'ercicio2 iniciali*ar la imagen a color amarillo.
86.2. Pro"ar creando una imagen de 7 canal. MSe )e amarillaN
LEER <N* I+*GEN DE DISCO
87. /a $uncin para leer una imagen desde un $ic3ero es imread%
+,- i()= i('e,d0.-'in) n$(#'e2 in- enC$l$'=615
+l primer parmetro indica el nom"re del $ic3ero( y el segundo dice si se de"e leer en
color ,)alor 71( en grises ,)alor 61 o tal y como estL en el $ic3ero ,)alor Q71.
82. /a $uncin imread admite los 5ormatos RMP( 9IR( SPG( SP+( SP+G( PNG( PRM( PGM(
PPM( S:( :5S( IK y IKK. +n la )ersin 2.<.=.g 3e aEadido el $ormato GIK.
88. Pro"ar lo siguiente( copiando primero una imagen al directorio donde est el e'ecuta"le2
Ma! img) im'ead#,imagen.Dpg,$; // Poner aqu el nombre de la imagen
namedWindow#,-magen,. G$;
imshow#,-magen,. img$;
88.7. MQuL ocurreN MPor &uL $allaN
;
Procesamiento de Imgenes Guin de Prcticas
Sesin 2. Instalacin y uso de OpenCV en Qt Creator
88.2. +'ercicio2 3acer &ue el cdigo sea ro"usto $rente a errores. Su0erencia1 la $uncin
imread de)uel)e una imagen )ac#a si no puede leer ,img.emp!H#$ )) !'ue1.
88.8. Ver en Pro:ects 4 Run 4 /or,in0 director( cul es el directorio de tra"a'o del
e'ecuta"le. 53# es donde se de"e colocar la imagen.
CLON*R <N* I+*GEN EFIS)EN)E
8<. +l mLtodo c"one permite clonar una imagen e0istente.
+,- c$pi,= i(,)en.cl$ne015
8;. /a imagen clonada tiene el mismo tamaEo( tipo y contenido &ue la original. +s una
imagen nue)a( &ue tiene su propia memoria.
8=. Si copiamos una imagen en otra ,sin usar clone1( am"as comparten la misma memoria.
Solo e0iste una imagen re$erenciada dos )eces2
+,- ,li,.= i(,)en5
8?. Pro"ar la di$erencia entre estas am"as cosas ,o"ser)ar &ue se puede omitir la llamada
a named/indoB( en ese caso la )entana se crea sola12
Ma! img) im'ead#,imagen.Dpg,$;
imshow#,-magen an!es,. img$;
Ma! copia) img.clone#$;
Ma! alias) img;
img) 34_/E#2FF.G.G$; // &e pone a 'oDo !oda la imagen
imshow#,-magen despues,. img$;
imshow#,3opia,. copia$;
imshow#,0lias,. alias$;
8B. am"iLn se puede crear una imagen como un 5ra0mento de otra imagen. /a imagen de
destino es una re$erencia a un tro*o de la imagen original ,no e0iste por s# sola1. +ste
tro*o se de$ine como un rectngulo2 7ec-082 92 ,nc*$2 ,l-$1.
+,- :',)(en-$= i()07ec-082 92 ,nc*$2 ,l-$115
8D. Pro"ar lo siguiente2
Ma! img) im'ead#,(.Dpg,$;
Ma! >'agmen!o) img#/ec!#G. 2GG. 9GG. 2GG$$;
imshow#,A'oCo,. >'agmen!o$;
>'agmen!o) 34_/E#2FF.G.G$;
imshow#,-magen,. img$;
<6. 9e esta manera podemos de$inir y tra"a'ar con re0iones de interGs (ROI!.
EN)R*D*HS*LID* #ESIC*
<7. Como 3emos )isto( >ig3G!I incluye un mecanismo muy sencillo para crear 6entanas
en las &ue mostrar imgenes de tipo Ip"Ima0e. /as )entanas de >ig3G!I se re$erencian
por un nom"re( &ue es una cadena de tipo strin0.
<2. Para crear una nue6a 6entana se usa2
=
Procesamiento de Imgenes Guin de Prcticas
Sesin 2. Instalacin y uso de OpenCV en Qt Creator
%$id n,(ed;ind$/0.-'in) n$(#'e2 in- :l,). = ;INDO;&AUTO!I<E15
<2.7. Si ya e0iste una )entana con ese nom"re( no 3ace nada.
<2.2. +l parmetro 5"a0s indica el tipo de )entana2 CVG-IN9O-GNO:M5/ o
CVG-IN9O-G5!OSIC+ ,si se puede redimensionar el tamaEo de la )entana o
no1( CVG-IN9O-GK:++:5IO o CVG-IN9O-GT++P:5IO ,relacin de
aspecto )aria"le o $i'a1( CVGG!IGNO:M5/ o CVGG!IG+UP5N9+9 ,)entana
normal sin nada o con "otones adicionales1.
<2.8. +n los e'emplos de los anteriores puntos( )er la di$erencia entre poner
n,(ed;ind$/0"I(,)en"2 CV&;INDO;&NO7+AL \ CV&=UI&NO7+AL \
CV&;INDO;&AUTO!I<E \ e-c. 15
<8. !na )e* creada una )entana( se muestran "as im0enes en ella con2
%$id i(.*$/0.-'in) n$(#'e2 +,- ()1
+l primer parmetro es el nom"re de la )entana. Si no se e0iste( no 3ace nada. +l
segundo parmetro es la imagen a mostrar.
<<. /a )entana se puede cam"iar de tamaEo con resi7e/indoB y de posicin con
mo6e/indoB. Ver la ayuda. Pro"ar( por e'emplo( el siguiente cdigo2
namedWindow#,-magen,. G$;
Ma! img#2:G. 92G. 34_5639$;
>o' #in! i) G; i<2F8; iII$ %
img) 34_/E##iJK$L98.#iJ25$LM.iJ22:$;
imshow #,-magen,. img$;
moveWindow#,-magen,. i. 7GG$;
wai!?eH#7G$;
2
<;. Prueba1 en el e'emplo anterior( pro"ar a cerrar la )entana en su camino. MQuL ocurreN
MPor &uLN
<=. /as )entanas se pueden e"iminar con destro/indoB(strin0 nombre!. Pero tam"iLn
se puede de'ar &ue las cierre el usuario del programa.
<?. +l tipo de las )entanas puede cam"iarse una )e* creadas con la $uncin
set/indoBPropert. Por e'emplo( podemos mostrar imgenes a pantalla completa.
Pro"ar lo siguiente ,se cierra la )entana al pulsar alguna tecla12
Ma! img) im'ead#,imagen.Dpg,$;
namedWindow#,-magen,. 34_W-+D*W_+*/M01$; >>P'$#,': CV&;INDO;&?7EE7ATIO
imshow#,-magen,. img$;
se!Window='ope'!H#,-magen,. 34_W+D_=/*=_F611&3/@@+. 7$;
wai!?eH#G$;
se!Window='ope'!H#,-magen,. 34_W+D_=/*=_F611&3/@@+. G$;
<B. Leer una pu"sacin de teclado2
in- /,i-@e90in- -i(e15
?
Procesamiento de Imgenes Guin de Prcticas
Sesin 2. Instalacin y uso de OpenCV en Qt Creator
/ee una tecla. time indica cunto tiempo esperar ,en milisegundos1. Si no se pulsa en
ese inter)alo( de)uel)e Q7. Si timeVV6( espera inde$inidamente. O:o1 para &ue esta
operacin $uncione( de"e 3a"er alguna )entana de >ig3G!I a"ierta.
<D. /as imgenes se 0uardan en disco con imBrite(nombre@ im0!. 9isponemos de una
gran )ariedad de $ormatos ,RMP( SPG( IK( GIK( PNG( etc.1. +l primer parmetro es el
nom"re y el segundo un +,-. /a $uncin de)uel)e un )alor "ooleano( &ue es true si se
3a podido escri"ir correctamente la imagen. +'emplo2
Ma! img) im'ead#,a.Dpg,. G$;
imw'i!e#,salida.Dpg,. img$;
;6. +n el caso de los arc3i)os SPG( se puede indicar la ca"idad de compresin IPG
llamando a la $uncin imBrite con un tercer parmetro adicional.
Ma! img) im'ead#,a.Dpg,. 7$;
vec!o'<in!> pa'ams;
pa'ams.push_(ac"#34_-MW/-A@_N=@E_Q601-AB$;
pa'ams.push_(ac"#2$;
imw'i!e#,salida.Dpg,. img. pa'ams$;
;7. +'emplo de BaitJe. !n pe&ueEo 'uego estilo snakes. >ay &ue pulsar la tecla Escape
para salir.
namedWindow#,-magen,. 34_W-+D*W_F/@@/0A-*$;
Ma! img#:5G. 8:G. 34_5639$;
imshow#,-magen,. img$;
se!Window='ope'!H#,-magen,. 34_W+D_=/*=_F611&3/@@+. 7$;
in! !ecla) G. O) 92G. H)2:G;
while #!eclaP)2K$ %
!ecla) wai!?eH#7$;
swi!ch #!olowe'#!ecla$$ %
case Q;Q: OR)7G; ('ea";
case QwQ: OI)7G; ('ea";
case QpQ: HR)7G; ('ea";
case QlQ: HI)7G; ('ea";
2
(lu'#img. img. &iCe#9.9$$;
imgR) &cala'::all#7$;
ci'cle#img. =oin!#O.H$.2G.34_/E#2FF.2FF.2FF$.R7$;
imshow#,-magen,. img$;
2
des!'oHWindow#,-magen,$;
;2. +l 6a"or de un co"or es de tipo Sca"ar. !n Scalar es "sicamente un array de < )alores
de tipo doub"e. Se puede acceder a sus )alores usando los corc3etes WX2
!c,l,' c$l$'= CV&7=0'$A$2 %e'de2 ,Bul15
c$l$'3C4 "D ABul c$l$'364 "D Ve'de c$l$'324 "D 7$A$
;8. /a operacin para "eer escribir e" 6a"or de un pDKe" es el mGtodo at. +sta operacin
est parametri*ada con el tipo de datos de la imagen. Si la imagen es B!C7( el tipo
de)uelto es un uc3ar@ si es B!C8 es tipo es Vec8"@ si esY
Im0 Va"or Im0 Va"or Im0 Va"or Im0 Va"or Im0 Va"or Im0 Va"or
B!C7 uc3ar 7=SC7 s3ort 7=!C7 us3ort 82SC7 int 82KC7 $loat =<KC7 dou"le
B
Procesamiento de Imgenes Guin de Prcticas
Sesin 2. Instalacin y uso de OpenCV en Qt Creator
B!C2 Vec2" 7=SC2 Vec2s 7=!C2 Vec2. 82SC2 Vec2i 82KC2 Vec2$ =<KC2 Vec2d
B!C8 Vec8" 7=SC8 Vec8s 7=!C8 Vec8. 82SC8 Vec8i 82KC8 Vec8$ =<KC8 Vec8d
B!C< Vec<" 7=SC< Vec<s 7=!C< Vec<. 82SC< Vec<i 82KC< Vec<$ =<KC< Vec<d
;<. Normalmente tra"a'aremos con imgenes de tipo B!C8( por lo &ue podemos acceder a
los p#0eles ,leer y escri"ir1 con cosas de la $orma2
Ma! img;
...
4ec9( piOel;
piOel) img.a!<4ec9(>#H.O$; >> Lee' un pE8el
>> pi8el3C4 "D ABul pi8el364 "D Ve'de pi8el324 "D 7$A$
img.a!<4ec9(>#H.O$) piOel; >> E.c'i#i' un pE8el
;;. Se puede con)ertir de Sca"ar a Vec;b 3aciendo casting2 4ec9( p) #4ec9($ scala';
+n sentido contrario ,de Vec8" a Scalar1 no se puede 3acer el casting.
;=. +'emplo de im0%at2
Ma! img#2F8. 2F8. 34_5639$;
>o' #in! H) G;H<2F8;HII$
>o' #in! O) G; O<2F8; OII$
img.a!<4ec9(>#H. O$) 4ec9(#H.O.G$;
imshow#,/esul!ado,. img$;
RES<+EN
+at ima0en(a"to@ anc9o@ tipo L@ co"orM !2 crear una imagen
ima0enN imread(nombre L@ 5"a0M !2 leer una imagen de disco
nue6aN ima0en%c"one(!2 clonar una imagen e0istente
ima0enN CV?RG#(ro:o@ 6erde@ a7u"!2 iniciali*ar una imagen con un color
boo" correctoN imBrite(nombre@ im0 L@ paramM !2 guardar una imagen a disco

named/indoB(nombre@ 5"a0!2 crear una )entana


ims9oB(nombre@ im0!2 mostrar una imagen en una )entana
destro/indoB(nombre!2 eliminar una )entana
int BaitJe(time!2 leer una tecla desde teclado
Vec;b piKe"N im0%atOVec;bP(@ K!2 o"tener el )alor de un p#0el
im0%atOVec;bP(@ K!N piKe"2 escri"ir el )alor de un p#0el
CV?RG#(r@ 0@ b!@ Vec;b(b@ 0@ r!2 de$inir una )aria"le de tipo Scalar o Vec8"
circ"e2 pintar un c#rculo. b"ur2 sua)i*ar una imagen
D

Вам также может понравиться