Upload
jaume-reig
View
153
Download
0
Embed Size (px)
DESCRIPTION
Pràctica 3 de l'assignatura Tractament i publicació d'imatge i vídeo del grau multimèdia de la UOC.
Citation preview
Tractament i publicaci dimatge i vdeo
Jaume Reig Carrascosa
Tercera Prctica dAvaluaci Continuada (Prctica 3)
Estudis dInformtica, Multimdia i Telecomunicaci. Grau de Multimdia
1. Realitza un programa en ActionScript que sobre la mateixa imatge que vau escollir per a lactivitat 1 de la primera prctica realitzi les segents transformacions lineals:
a. Dos binaritzacions, amb dos llindars diferents.b. Un negatiu.De manera que el resultat es mostri sobre una mateixa nestra dividida en quatre, on a
ms deles imatges resultats es mostri es la imatge original.
a. Dos binaritzacions, amb dos llindars diferents.
import ash.display.BitmapData;
bitmapA = BitmapData.loadBitmap(enum1);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var bitmapB:BitmapData = new BitmapData(256, 256, false, 0x999999);
llindar = 134;
for (i = 0; i
}
color = gris * 256*256 + gris * 256 + gris;
bitmapB.setPixel(i,j,color);
}
}
createEmptyMovieClip(imatgeB,this.getNextHighestDepth());
imatgeB.attachBitmap(bitmapB,this.getNextHighestDepth());
imatgeB._x=256;
/* binaritzaci llindar =134 */
bitmapC = bitmapA.clone();
var bitmapD:BitmapData = new BitmapData(256, 256, false, 0x999999);
llindar = 100;
for (i = 0; i
b. Un negatiu.
import ash.display.BitmapData;
bitmapA = BitmapData.loadBitmap(enum1);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var bitmapB:BitmapData = new BitmapData(256, 256, false, 0x999999);
llindar = 134;
for (i = 0; i
2. Programa una funci capa de donar com a resultat la comparativa de la modi caci delnivell de bits per pxel de color duna imatge (lliure elecci) amb tres nivells diferents.
import ash.display.BitmapData;
bitmapA = BitmapData.loadBitmap(blakeyed);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
/* 4 i 3 */
var bitmapB:BitmapData = new BitmapData(256, 256, false, 0x999999);
nbitsRG = 4;
nbitsB = 3;
for (i = 0; i= 16;
G = bitmapA.getPixel(i,j) & 0x00FF00;
G >>= 8;
B = bitmapA.getPixel(i,j) & 0x0000FF;
R >>= (8-nbitsRG);
R = (8-nbitsRG);
Arxiu Flash: 2-nivells. a
4
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
5
G = (8-nbitsB);
B = 8;
B = bitmapA.getPixel(i,j) & 0x0000FF;
R >>= (8-nbitsRG);
R = (8-nbitsRG);
G = (8-nbitsB);
B = 8;
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
6 7
B = bitmapA.getPixel(i,j) & 0x0000FF;
R >>= (8-nbitsRG);
R = (8-nbitsRG);
G = (8-nbitsB);
B
3. Programeu en ActionScript la transformaci en pseudocolor realitzada en la primera prctica del curs.
import ash.display.BitmapData;
var RGB:Array = new Array();
var llindar:Array = new Array(64, 128, 192);
var Nmin:Array = new Array(0, 0, 0)
var Nmax:Array = new Array(255, 255, 255)
var bitmapB:BitmapData = new BitmapData(512, 636, false, 0x999999);
bitmapA = BitmapData.loadBitmap(radiogra a);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
for (i = 0; i= 16;
RGB[1] = bitmapA.getPixel(i,j) & 0x00FF00;
RGB[1] >>= 8;
RGB[2] = bitmapA.getPixel(i,j) & 0x0000FF;
Arxiu Flash: 3-pseudocolor. a
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
8 9
4. En la 1 prctica exercici 7 apliquem diferents ltres a mida sobre una imatge a destu-diar les transformacions espacials lineals. Generar un programa en ActionScript que realitzi aquest mateix exercici, on cada una de les transformacions es mostrin en nestres diferents (o compartides a 4 per nestra).
for (l=0; l llindar[l]){
RGB[l] = Nmax[l];}
else{
RGB[l] = Nmin[l];
}
}
color = RGB[0] * 256 * 256 + RGB[1] * 256 + RGB[2];
bitmapB.setPixel(i,j,color);
}
}
createEmptyMovieClip(imatgeB,this.getNextHighestDepth());
imatgeB.attachBitmap(bitmapB,this.getNextHighestDepth());
imatgeB._y=318;
dispose(bitmapA);
dispose(bitmapB);
Arxiu Flash: 4-contorns-verticals-horitzontals. a
8
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
9
import ash.display.BitmapData;
bitmapA = BitmapData.loadBitmap(enum7);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
import ash. lters.ConvolutionFilter;
import ash.geom.Rectangle;
import ash.geom.Point;
bitmapC = bipmapA.clone();
/* contorns horitzontals */
var dimX:Number = 3;
var dimY:Number = 3;
var matriu:Array = [-1, -2, -1, 0, 0, -0, 1, 2, 1];
var divisor:Number = 1;
var biaix:Number = 128;
var mascara: ConvolutionFilter = new ConvolutionFilter(dimX, dimY, matriu, divisor, biaix);
var bitmapB:BitmapData = new BitmapData(256, 256, false, 0x999999);
bitmapB.applyFilter(bitmapA, bitmapA.rectangle, new Point(0, 0), mascara);
/* contorns verticals */
var dimX:Number = 3;
var dimY:Number = 3;
var matriu:Array = [-1, 0, 1, -1, 0, 1, -1, 0, 1];
var divisor:Number = 1;
var biaix:Number = 128;
var mascara: ConvolutionFilter = new ConvolutionFilter(dimX, dimY, matriu, divisor, biaix);
var bitmapD:BitmapData = new BitmapData(256, 256, false, 0x999999);
bitmapD.applyFilter(bitmapA, bitmapA.rectangle, new Point(0, 0), mascara);
bitmapC = bitmapA.clone();
createEmptyMovieClip(imatgeC, this.getNextHighestDepth());
imatgeC.attachBitmap(bitmapC, this.getNextHighestDepth());
/* colocar movieclips */
createEmptyMovieClip(imatgeB,this.getNextHighestDepth());
imatgeB.attachBitmap(bitmapB,this.getNextHighestDepth());
imatgeB._x=256;
createEmptyMovieClip(imatgeC,this.getNextHighestDepth());
imatgeC.attachBitmap(bitmapC,this.getNextHighestDepth());
imatgeC._y=256;
createEmptyMovieClip(imatgeD,this.getNextHighestDepth());
imatgeD.attachBitmap(bitmapD,this.getNextHighestDepth());
imatgeD._y=256;
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
10 11
imatgeD._x=256;
dispose(bitmapA);
dispose(bitmapB);
dispose(bitmapC);
dispose(bitmapD);
import ash.display.BitmapData;
bitmapA = BitmapData.loadBitmap(enum7);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
import ash. lters.ConvolutionFilter;
import ash.geom.Rectangle;
import ash.geom.Point;
bitmapC = bipmapA.clone();
/* contorns globals */
var dimX:Number = 3;
var dimY:Number = 3;
var matriu:Array = [-1, -1, -1, -1, 8, -1, -1, -1, -1];
var divisor:Number = 1;
var biaix:Number = 128;
var mascara: ConvolutionFilter = new ConvolutionFilter(dimX, dimY, matriu, divisor, biaix);
var bitmapB:BitmapData = new BitmapData(256, 256, false, 0x999999);
Arxiu Flash: 4-contorns-globals-diagonals. a
10
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
11
bitmapB.applyFilter(bitmapA, bitmapA.rectangle, new Point(0, 0), mascara);
/* contorns diagonals */
var dimX:Number = 3;
var dimY:Number = 3;
var matriu:Array = [-1, -1, 2, -1, 2, -1, 2, -1, -1];
var divisor:Number = 1;
var biaix:Number = 128;
var mascara: ConvolutionFilter = new ConvolutionFilter(dimX, dimY, matriu, divisor, biaix);
var bitmapD:BitmapData = new BitmapData(256, 256, false, 0x999999);
bitmapD.applyFilter(bitmapA, bitmapA.rectangle, new Point(0, 0), mascara);
bitmapC = bitmapA.clone();
createEmptyMovieClip(imatgeC, this.getNextHighestDepth());
imatgeC.attachBitmap(bitmapC, this.getNextHighestDepth());
/* colocar movieclips */
createEmptyMovieClip(imatgeB,this.getNextHighestDepth());
imatgeB.attachBitmap(bitmapB,this.getNextHighestDepth());
imatgeB._x=256;
createEmptyMovieClip(imatgeC,this.getNextHighestDepth());
imatgeC.attachBitmap(bitmapC,this.getNextHighestDepth());
imatgeC._y=256;
createEmptyMovieClip(imatgeD,this.getNextHighestDepth());
imatgeD.attachBitmap(bitmapD,this.getNextHighestDepth());
imatgeD._y=256;
imatgeD._x=256;
dispose(bitmapA);
dispose(bitmapB);
dispose(bitmapC);
dispose(bitmapD);
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
12 13
5. Realitza el programa en ActionScript amb les combinacions de transformacions espaci-als lineals i no lineals necessries per resoldre lexercici 3 de la prctica 2:b) eliminar el mxim possible els cables del cartell: h11690_a.jpgd) allar la forma del microorganisme el mxim possible: microorg.jpg
b) eliminar el mxim possible els cables del cartell: h11690_a.jpg
import ash.display.BitmapData;
var EE:Array = new Array(0, 0, 0, 1, 1, 1, 0, 0, 0);
dimEEx = 3;
dimEEy = 3;
bitmapA = BitmapData.loadBitmap(h11690_a);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var bitmap_temp:BitmapData = erosio(dimEEx, dimEEy, EE, bitmapA);
var bitmapB:BitmapData = dilatacio(dimEEx, dimEEy, EE, bitmap_temp);
createEmptyMovieClip(imatgeB,this.getNextHighestDepth());
imatgeB.attachBitmap(bitmapB,this.getNextHighestDepth());
imatgeB._x=256;
dispose(bitmapA);
dispose(bitmapB);
function dilatacio(dimEEx:Number, dimEEy:Number, EE:Array, bitmap_in:BitmapData) {
var bitmap_out:BitmapData = new BitmapData(bitmap_in.width, bitmap_in.height, false, 0x999999);
Arxiu Flash: 5-B-eliminar-cables. a
12
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
13
var regio:Array = new Array();
N = dimEEx * dimEEy;
L = (dimEEx-1)/2;
K = (dimEEy-1)/2;
for (i = 0; i
d) allar la forma del microorganisme el mxim possible: microorg.jpg
regio[r] = bitmapA.getPixel(i+k,j+l) & 0x0000FF;
r = r+1;
}
}
min=255;
for(r=0; r
6. Programeu les transformacions geomtriques en ActionScript segents, de manera qu el resultat aparegui en nestres diferents. Utilitzar una imatge lliure sobre la qual aplicar-les:a. Zoom de factor 4.b. Translacic. Rotacid. Delmaci de factor 3.e. La composici de b, c, i d.
import ash.display.BitmapData;
bitmapA = BitmapData.loadBitmap(celula);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var bitmapB:BitmapData = new BitmapData(211, 214, false, 0x999999);
llindar = 203;
bin_min = 90; /* el nivell ms fosc de la imatge */
bin_max = 245; /* el nivell ms clar */
for (i = 0; i
a. Zoom de factor 4.
import ash.display.BitmapData;
import ash.geom.Matrix;
import ash.geom.Transform;
bitmapA = BitmapData.loadBitmap(cam1);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var transformacioA:Transform = new Transform(imatgeA);
var matriuT:Matrix = new Matrix();
matriuT.scale(4, 4);
transformacioA.matrix = matriuT;
dispose(bitmapA);
Arxiu Flash: 6-A-zoom. a
16
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
17
b. Translaci
import ash.display.BitmapData;
import ash.geom.Matrix;
import ash.geom.Transform;
bitmapA = BitmapData.loadBitmap(cam1);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var transformacioA:Transform = new Transform(imatgeA);
var matriuT:Matrix = new Matrix();
matriuT.translate(150, 150);
transformacioA.matrix = matriuT;
dispose(bitmapA);
Arxiu Flash: 6-B-traslacio. a
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
18 19
c. Rotaci
import ash.display.BitmapData;
import ash.geom.Matrix;
import ash.geom.Transform;
bitmapA = BitmapData.loadBitmap(cam1);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
imatgeA._x = 53;
imatgeA._y = 53;
var transformacioA:Transform = new Transform(imatgeA);
var matriuT:Matrix = new Matrix();
angle = 45;
matriuT.rotate(Math.PI*angle/180);
transformacioA.matrix = matriuT;
imatgeA._x = 200;
imatgeA._y = 130;
dispose(bitmapA);
Arxiu Flash: 6-C-rotacio. a
18
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
19
d. Delmaci de factor 3.
import ash.display.BitmapData;
import ash.geom.Matrix;
import ash.geom.Transform;
bitmapA = BitmapData.loadBitmap(cam1);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var transformacioA:Transform = new Transform(imatgeA);
var matriuT:Matrix = new Matrix();
matriuT.scale(0.33, 0.33);
transformacioA.matrix = matriuT;
dispose(bitmapA);
Arxiu Flash: 6-D-delmacio. a
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
20 21
e. La composici de b, c, i d.
import ash.display.BitmapData;
import ash.geom.Matrix;
import ash.geom.Transform;
bitmapA = BitmapData.loadBitmap(cam1);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var transformacioA:Transform = new Transform(imatgeA);
var matriuT:Matrix = new Matrix();
matriuT.scale(0.33, 0.33);
angle = 45;
matriuT.rotate(Math.PI*angle/180);
matriuT.translate(150, 150);
transformacioA.matrix = matriuT;
dispose(bitmapA);
Arxiu Flash: 6-E-composicio. a
20
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
21
7. A lexercici 8-A, de la segona prctica es demanava dobtenir els contorns de les lletres de la matrcula per a la imatge matrcula.jpg. Programeu les transformacions usades per obte-nir-los de manera que les imatges resultants siguin en diferents nestres:a) Fons negre i contorns en blanc, usant transformacions espacials lineals.b) Fons negre i contorns en blanc, usant transformacions espacials NO lineals.c) Fons blanc i contorns en negre, usant transformacions espacials no lineales i puntuals.d) Finestra compartida pels tres resultats ms la imatge original, per mostrar lacomparativa dels resultats obtinguts a lexercici.
a) Fons negre i contorns en blanc, usant transformacions espacials lineals.
iimport ash.display.BitmapData;
import ash. lters.ConvolutionFilter;
import ash.geom.Rectangle;
import ash.geom.Point;
var dimX:Number = 3;
var dimY:Number = 3;
var matriu:Array = [-1, -1, -1, -1, 8, -1, -1, -1, -1];
var divisor:Number = 1;
var biaix:Number = 0; /* de 0 a 255 nivells 0 s negre*/
var mascara: ConvolutionFilter = new ConvolutionFilter(dimX, dimY, matriu, divisor, biaix);
var bitmapB:BitmapData = new BitmapData(256, 256, false, 0x999999);
bitmapA = BitmapData.loadBitmap(matricula);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
bitmapB.applyFilter(bitmapA, bitmapA.rectangle, new Point(0, 0), mascara);
Arxiu Flash: 7-A-transformacio-lineal. a
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
22 23
b) Fons negre i contorns en blanc, usant transformacions espacials NO lineals.
createEmptyMovieClip(imatgeB,this.getNextHighestDepth());
imatgeB.attachBitmap(bitmapB,this.getNextHighestDepth());
imatgeB._x=256;
dispose(bitmapA);
dispose(bitmapB);
import ash.display.BitmapData;
var EE:Array = new Array(1, 1, 1, 1, 1, 1, 1, 1, 1);
dimEEx = 3;
dimEEy = 3;
bitmapA = BitmapData.loadBitmap(matricula);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var bitmapB:BitmapData = new BitmapData(256, 256, false, 0x999999);
var bitmap_temp:BitmapData = erosio(dimEEx, dimEEy, EE, bitmapA);
/* restem la imatge original per lerosinada*/
for (i = 0; i
bitmapB.setPixel(i,j,color);
}
}
createEmptyMovieClip(imatgeB,this.getNextHighestDepth());
imatgeB.attachBitmap(bitmapB,this.getNextHighestDepth());
imatgeB._x=256;
dispose(bitmapA);
dispose(bitmapB);
dispose(bitmap_temp);
function erosio(dimEEx:Number, dimEEy:Number, EE:Array, bitmap_in:BitmapData) {
var bitmap_out:BitmapData = new BitmapData(bitmap_in.width, bitmap_in.height, false, 0x999999);
var regio:Array = new Array();
N = dimEEx * dimEEy;
L = (dimEEx-1)/2;
K = (dimEEy-1)/2;
for (i = 0; i
c) Fons blanc i contorns en negre, usant transformacions espacials no lineales i puntuals.
import ash.display.BitmapData;
var EE:Array = new Array(1, 1, 1, 1, 1, 1, 1, 1, 1);
dimEEx = 3;
dimEEy = 3;
bitmapA = BitmapData.loadBitmap(matricula);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var bitmapB:BitmapData = erosio(dimEEx, dimEEy, EE, bitmapA);
/* aqui apliquem una binaritzaci */
llindar = 113;
for (i = 0; i
imatgeB.attachBitmap(bitmapB,this.getNextHighestDepth());
imatgeB._x=256;
dispose(bitmapA);
dispose(bitmapB);
function erosio(dimEEx:Number, dimEEy:Number, EE:Array, bitmap_in:BitmapData) {
var bitmap_out:BitmapData = new BitmapData(bitmap_in.width, bitmap_in.height, false, 0x999999);
var regio:Array = new Array();
N = dimEEx * dimEEy;
L = (dimEEx-1)/2;
K = (dimEEy-1)/2;
for (i = 0; i
d) Finestra compartida pels tres resultats ms la imatge original, per mostrar la compara-tiva dels resultats obtinguts a lexercici.
Arxiu Flash: 7-D-no-combinacio. a
26
UOC. Estudis dInformtica, Multimdia i Telecomunicaci. Grau de MultimdiaTractament i publicaci dimatge i vdeo. 1er semestre 2011-2012. Prctica 3 Jaume Reig Carrascosa
27
import ash.display.BitmapData;
import ash. lters.ConvolutionFilter;
import ash.geom.Rectangle;
import ash.geom.Point;
bitmapA = BitmapData.loadBitmap(matricula);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
/* transformaci lineal mascara laplaciana detectora contorns 3 */
var dimX:Number = 3;
var dimY:Number = 3;
var matriu:Array = [-1, -1, -1, -1, 8, -1, -1, -1, -1];
var divisor:Number = 1;
var biaix:Number = 0; /* de 0 a 255 nivells 0 s negre*/
var mascara: ConvolutionFilter = new ConvolutionFilter(dimX, dimY, matriu, divisor, biaix);
var bitmapB:BitmapData = new BitmapData(260, 153, false, 0x999999);
bitmapA = BitmapData.loadBitmap(matricula);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
bitmapB.applyFilter(bitmapA, bitmapA.rectangle, new Point(0, 0), mascara);
/* transformacio no lineal tancament */
var EE:Array = new Array(1, 1, 1, 1, 1, 1, 1, 1, 1);
dimEEx = 3;
dimEEy = 3;
bitmapA = BitmapData.loadBitmap(matricula);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var bitmapC:BitmapData = new BitmapData(260, 153, false, 0x999999);
var bitmap_temp:BitmapData = erosio(dimEEx, dimEEy, EE, bitmapA);
/* restem la imatge original per lerosinada*/
for (i = 0; i
}function erosio(dimEEx:Number, dimEEy:Number, EE:Array, bitmap_in:BitmapData) {
var bitmap_out:BitmapData = new BitmapData(bitmap_in.width, bitmap_in.height, false, 0x999999);
var regio:Array = new Array();
N = dimEEx * dimEEy;
L = (dimEEx-1)/2;
K = (dimEEy-1)/2;
for (i = 0; i
llindar = 113;
for (i = 0; i
8. (Opcional, per pujar nota) Escriu el codi que seria necessari usar per programar enActionScript les segents corbes de modi caci de contrast:
import ash.display.BitmapData;
bitmapA = BitmapData.loadBitmap(venice);
createEmptyMovieClip(imatgeA, this.getNextHighestDepth());
imatgeA.attachBitmap(bitmapA, this.getNextHighestDepth());
var bitmapB:BitmapData = new BitmapData(256, 256, false, 0x999999);
llindar1 = 60;
llindar2 = 200;
gris1 = 75;
gris2 = 255;
for (i = 0; i