Upload
phungquynh
View
252
Download
8
Embed Size (px)
Citation preview
Slikovna analiza Slikovna analiza ––
primjeri primjene u grafičkoj primjeri primjene u grafičkoj
tehnologijitehnologiji
ImageJImageJ
Primjena i ispitivanje grafičkih materijalaPrimjena i ispitivanje grafičkih materijala
Slikovna obrada i analizaSlikovna obrada i analiza
eng. image processing and analysisračunalna obrada i analiza digitalne slike
obrada slike:ulazni parametar je slikaizlazni parametar je slika (modificirana)
analiza slike:ulazni parametar je slikaizlazni parametar je informacija (rezultat mjerenja)
Grafička i papirna industrijaGrafička i papirna industrija
u grafičkoj industriji i industriji proizvodnje papira slikovna analiza koristi se kod analize npr.
formacije papiranečistoća u papirustrukture i sastava papira i premaza u presjeku (z-smjeru)topografije (hrapavosti) papira i premazakontaktnog kutapenetracije bojeprašine i čupanja
geometrije rasterske točkenejednakomjernosti u tisku (mottling)bleeding, wicking, sattelites“missing dots”kalibracija
Digitalna slika (image)Digitalna slika (image)
slika je niz, mreža ili matrica (array, matrix) slikovnih elemenata - piksela
Digitalna slika (image)Digitalna slika (image)
x
yelement (točka)
I = f(x,y)I = intenzitetx,y = koordinate elementa
Faze obrade i analize slikeFaze obrade i analize slike
prihvat i digitalizacija – skener, foto kamere, optička oprema; video karticaobrada i analiza slike – računalo, programska oprema
ImageJ software
ImageJImageJ
Rasband, W.S., ImageJ, U. S. National Institutes of Health, Maryland, USA, http://rsb.info.nih.gov/ij/,1997-2006implementiran u Javibesplatanopen-sourcemoguća nadogradnja i prilagođavanje putem plugina
koristi se za: kreaciju, vizualizaciju, obradu, procesiranje, analizu... slikakoristan u znanstvenom i istraživačkom radu
Instalacija i osnove sučeljaInstalacija i osnove sučelja
http://rsb.info.nih.gov/ij/odabir platforme (Windows, Mac, Linux, Web Applet)radi na bilo kojoj platformi koja ima JRE (Java runtime enviroment)
open, save, new
adjust, color, stacks, transform
copy, cut, edit images, draw, selection
point and arithmetic operations, filters
particle analysis, statistics, histograms, plotting, set scale
manage and execute plugins, macros
Makro naredbeMakro naredbe
makro naredbe (macros) su nizovi naredbi/jednostavni programi koji omogućavaju automatizirano izvođenje funkcijaniz naredbi zapisan je u .txt datoteci kao “običan” tekst, u makro jeziku (baziran na Javi) koji se interpretira u ImageJ-u omogućuju implementaciju automatiziranih naredbi povezivanjem postojećih funkcija u ImageJ-uza pisanje jednostavnih makro naredbi dobro znanje Jave nije potrebnodeveloper resources na ImageJ web stranici http://rsb.info.nih.gov/ij/developer/index.html
Primjeri slikovne analizePrimjeri slikovne analize
Primjer 1: ANALIZA ČESTICA PRAŠINE
Primjer 2: ANALIZA ČESTICA BOJE (RECIKLACIJA)
Primjer 3: NEJEDNAKOMJERNOST OTISKA (MOTTLING)
Primjer 4: HRAPAVOST PO IGT METODI
Analiza čestica prašineAnaliza čestica prašine
analiza i kvantifikacija čestica (particle analysis) na uzorcima otisaka testa za prašinu na papiru (IGT Fluff)standardna procedura određivanja rezultata prašine na papiru po IGT-u je subjektivna – oslanja se na osobnu procjenu, vizualna metodaslikovna analiza pruža mogućnost objektivne analize – treba biti jednostavna za korištenje, ponovljiva i brzo izvediva
otisci imaju dimenzije cca. 2 cm širina i 20 cm dužinaanalizu radimo na području otiska 1 cm * 10 cmotisci imaju crnu (tamnu) pozadinu, a čestice prašine su bijele (svijetle)
cilj: napisati makro naredbu koja će potpuno automatizirati proces analize česticaulazni podatak: skenirani otisak, 600dpi, tiff ili bmp
DigitalizacijaSkeniranjeOdabir ROI-a
SegmentacijaFilteriPragPozadinski šum
Analiza česticaKarakteristike (veličina, oblik)Broj česticaPokrivenost površine (%)
Koraci slikovne analizeKoraci slikovne analize2400 dpi 1200 dpi
600 dpi 300 dpi
200 dpi
600 dpi600 dpi
(Invert)(Invert)(Median)(Median)
VLAKNOCirkularnost
–
mala
Feret-ov promjer
–
velik
Opseg
–
velik
Fluff_Particle Analysis makro naredbaFluff_Particle Analysis makro naredba
saveSettings(); run("Set Measurements...", "area centroid perimeter fit circularity feret's area_fraction redirect=None decimal=2"); run("Set Scale...", "distance=23.622 known=1 pixel=1 unit=mm global"); w=2360 q=236 makeRectangle(0, 0, q, w); myImageID = getImageID(); setTool(0); beep(); run("Wait For User", "Select Area to Analyze"); if (selectionType () !=0)
exit("Please select rectangle!"); selectImage(myImageID); run("Copy"); run("Internal Clipboard"); setBatchMode(true); run("8-bit"); run("Bandpass Filter...", "filter_large=20 filter_small=2 suppress=None tolerance=5 process"); run("Entropy Threshold"); run("Invert"); setBatchMode(false); run("Analyze Particles...", "size=0.02-Infinity circularity=0.00-1.00 show=Outlines display exclude clear include summarize"); run("Distribution...", "parameter=Area automatic");restoreSettings();
Fluff_Particle Analysis makro naredbaFluff_Particle Analysis makro naredba
Fluff_Particle Analysis makro naredbaFluff_Particle Analysis makro naredba
Fluff_Particle Analysis makro naredbaFluff_Particle Analysis makro naredba
Analiza čestica boje (reciklacija)Analiza čestica boje (reciklacija)
analiza čestica (particle analysis) na uzorcima labaratorijskih listova napravljenih od reciklirane pulpesmanjenjem broja i ukupne površine čestica mjeri se uspješnost deinking flotacijeveličina čestica može objasniti uspješnost deinking flotacijeanalizu radimo na odabranom području otiskalabaratorijski listovi se prije analize čestica obrađuju filterima, postavlja im se prag (treshold) i stvara se binarna slika (0 ili 255) – i ovi koraci se po želji mogu uključiti u makro naredbu
cilj: napisati makro naredbu koja će potpuno automatizirati proces ispisa parametara analize čestica po željenim klasama veličineulazni podatak: skenirani otisak, dpi ovisan o vrsti uzorka, tiff ili bmp
Obrada slike prije analizeObrada slike prije analize
skenirana .tif slika200 dpiRGB
8-bit slika256 tonova
binarna slika0 ili 1
Particle Analysis makro naredbaParticle Analysis makro naredba
saveSettings(); setBatchMode(true);run("Set Measurements...", "area centroid perimeter fit circularity feret's area_fraction display redirect=None decimal=2");Dialog.create("Set Dpi");Dialog.addNumber("Dpi: ", 200);Dialog.show();Dpi = Dialog.getNumber();parseFloat("Dpi");
run("Set Scale...", "distance="+Dpi+" known=25.4 pixel=1 unit=mm
global");
run("Analyze Particles...", "size=0-0.04 circularity=0.00-1.00 show=Nothing exclude clear include");
print("0.00-0.04");n = nResults;sum = 0;for (i=0; i<n; i++)
sum += getResult("Area", i);average = sum/n;getPixelSize(unit, pw, ph);imageSize = getWidth*getHeight*pw*ph;fraction = sum/imageSize;print("Count:", n);print("TotalArea: "+sum+" "+unit+"^2");print("Average Size: "+average+" "+unit+"^2");print("Area Fraction: "+d2s(fraction*100,2)+"%");
Particle Analysis makro naredbaParticle Analysis makro naredba
Nejednakomjernost otiska (Mottle)Nejednakomjernost otiska (Mottle)
mottle je pojam koji označava nejednakomjernost otiskapostoji veći broj metoda za kvantificiranje nejednakomjernosti otiska, kao i indeksa nejednakomjernostiu ovom primjeru koristila se praktična metoda širine raspona intenziteta prikazanih na histogramu uzorka, a mottle indeks označava se kao NU (nonuniformity number)veći NU označava veći mottlingNU = Ux – Lx, gdje je Ux = prosjek intenziteta iznad mediana i Lx = prosjek intenziteta ispod mediana
cilj: napisati makro naredbu koja će potpuno automatizirati postupak određivanja nejednakomjernosti otiska i kao rezultat dati vrijednost NUulazni podatak: skenirani otisak, veličina uzorka otiska po želji, tiff ili bmp
Histogram Mottle makro naredbaHistogram Mottle makro naredba
requires("1.34g");
saveSettings(); setBatchMode(true);run("8-bit");run("Set Measurements...", "mean min median limit redirect=None decimal=2");
Dialog.create("Select Area Dimensions to Evaluate");Dialog.addNumber("Width (px):", 200);Dialog.addNumber("Height (px):", 200);Dialog.show();w = Dialog.getNumber();q = Dialog.getNumber();
makeRectangle(0, 0, q, w);
ID1 = getImageID(); setTool(0); beep(); run("Wait For User", "Select Area to Analyze"); if (selectionType () !=0)
exit("Please select rectangle!");
selectImage(ID1); run("Measure");median = getResult("Median");getMinAndMax(min, max);
selectImage(ID1); //run("Threshold...");setThreshold(min, median);run("Measure");mean = getResult("Mean");
Lx = mean;resetThreshold;
selectImage(ID1);//run("Threshold...");setThreshold(median, max);
run("Measure");mean = getResult("Mean");
Ux = mean;resetThreshold;
selectImage(ID1);
NU = (Ux-Lx);showMessage("Histogram Mottle: ", "Non-uniformity number (NU) is: "+NU);title = getTitle();print(title+" NU is: "+NU);restoreSettings();
Histogram Mottle makro naredbaHistogram Mottle makro naredba
Histogram Mottle makro naredbaHistogram Mottle makro naredba
Hrapavost po IGT metodiHrapavost po IGT metodi
hrapavost podloge (papira) važna je za konačnu kvalitetu otiskaIGT Roughness metoda je dinamička metoda određivanja hrapavostiodređena količina vode obojene s trypan plavom bojom (1%) nanese se papir (na mjesto nanosa tekućine nanese se lak i osuši)tekućina se velikom brzinom razvalja između dvije trake identičnog papira koji se testira mrlja koja nastane se izmjeri (njena površina) i uvrsti u formuluR = V (mm3) * 1000 / 2 * A (mm2)
cilj: napisati makro naredbu koja će potpuno automatizirati postupak određivanja hrapavosti papira po IGT W28 metodiulazni podatak: skenirana “mrlja”, 600 dpi, tiff ili bmp
IGT Roughness makro naredbaIGT Roughness makro naredba
saveSettings();
Dialog.create("Inputs");Dialog.addNumber("Dpi: ", 600);Dialog.addNumber("V (mm3):", 1);Dialog.show();Dpi = Dialog.getNumber();parseFloat("Dpi");Volumen = Dialog.getNumber();parseFloat("Volumen");
run("Set Measurements...", "area limit redirect=None decimal=2");run("Set Scale...", "distance="+Dpi+" known=25.4 pixel=1 unit=mm
global");
run("Enhance Contrast", "saturated=10");run("8-bit");
//run("Threshold...");setAutoThreshold();run("Analyze Particles...", "size=10-Infinity circularity=0.00-1.00 show=Nothing exclude clear include");
Area = getResult("Area");parseFloat("Area");
R = (Volumen*1000)/(2*Area);showMessage("IGT Roughness: ", "Roughness (R) is: "+R);title = getTitle();print(title+" R is: "+R);restoreSettings();
IGT Roughness makro naredbaIGT Roughness makro naredba
IGT Roughness makro naredbaIGT Roughness makro naredba
IGT Roughness makro naredbaIGT Roughness makro naredba