Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)



Podobné dokumenty
Semestrální projekt. Vyhodnocení přesnosti sebelokalizace VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií

SEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7

ÚVOD DO PROBLEMATIKY PIV

1 Jasové transformace

Měření průtoku kapaliny s využitím digitální kamery

Číselné charakteristiky a jejich výpočet

0.1 Úvod do lineární algebry

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 4.ročník RELATIVNÍ A ABSOLUTNÍ ORIENTACE AAT ANALYTICKÁ AEROTRIANGULACE

Time-Resolved PIV and LDA Measurements of Pulsating Flow

ROZ1 CVIČENÍ VI. Geometrická registrace (matching) obrazů

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

1. Přednáška. Ing. Miroslav Šulai, MBA

Měření proudového pole v pružných modelech

0.1 Úvod do lineární algebry

= cos sin = sin + cos = 1, = 6 = 9. 6 sin 9. = 1 cos 9. = 1 sin cos 9 = 1 0, ( 0, ) = 1 ( 0, ) + 6 0,

1 Základní funkce pro zpracování obrazových dat

Algoritmizace prostorových úloh

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

Primární zpracování radarového signálu dopplerovská filtrace

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

Kombinatorická minimalizace

II. Úlohy na vložené cykly a podprogramy

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Rovinný průtokoměr. Diplomová práce Ústav mechaniky tekutin a termodynamiky, Jakub Filipský

Geometrické transformace

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ, OBOR GEODÉZIE A KARTOGRAFIE KATEDRA MAPOVÁNÍ A KARTOGRAFIE

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

BPC2E_C08 Parametrické 3D grafy v Matlabu

Particle image velocimetry (PIV) Základní princip metody

5. Lokální, vázané a globální extrémy

Metoda Monte Carlo, simulované žíhání

SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1

10. N á h o d n ý v e k t o r

NÁHODNÝ VEKTOR. 4. cvičení

Neuronové časové řady (ANN-TS)

13 Barvy a úpravy rastrového

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Funkce přímá úměrnost III

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MODELOVÁNÍ MATLABEM

Linearní algebra příklady

Čas (s) Model časového průběhu sorpce vyplývá z 2. Fickova zákona a je popsán následující rovnicí

(0, y) 1.3. Základní pojmy a graf funkce. Nyní se již budeme zabývat pouze reálnými funkcemi reálné proměnné a proto budeme zobrazení

Ilustrační příklad odhadu LRM v SW Gretl

VEKTOR. Vymyslete alespoň tři příklady vektorových a skalárních fyzikálních veličin. vektorové: 1. skalární

Interpolace a aproximace dat.

2) Nulový bod stroje používáme k: a) Kalibraci stroje b) Výchozímu bodu vztažného systému c) Určení korekcí nástroje

Příklad 1. Řešení 1a. Řešení 1b ŘEŠENÉ PŘÍKLADY Z M1B ČÁST 5

4. Statika základní pojmy a základy rovnováhy sil

2 Zpracování naměřených dat. 2.1 Gaussův zákon chyb. 2.2 Náhodná veličina a její rozdělení

SHODNÁ ZOBRAZENÍ V ROVINĚ GEOMETRICKÁ ZOBRAZENÍ V ROVINĚ SHODNÁ ZOBRAZENÍ

SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Potenciální proudění

Digitalizace starých glóbů

Fouriérova transformace, konvoluce, dekonvoluce, Fouriérovské integrály

Experimentáln. lní toků ve VK EMO. XXX. Dny radiační ochrany Liptovský Ján Petr Okruhlica, Miroslav Mrtvý, Zdenek Kopecký.

POSLOUPNOSTI A ŘADY INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

Zpracování digitalizovaného obrazu (ZDO) - Analýza pohybu

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Parametrické rovnice křivky

Čas potřebný k prostudování učiva kapitoly: 1,25 hodiny

POSLOUPNOSTI A ŘADY INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

PROJEKT 3 2D TRAJEKTORIE KAMERY SEMESTRÁLNÍ PRÁCE DO PŘEDMĚTU MAPV

Circular Harmonics. Tomáš Zámečník

kamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická

Rastrové digitální modely terénu

Kinematika rektifikace oblouku (Sobotkova a Kochaňského), prostá cykloida, prostá epicykloida, úpatnice paraboly.

Náhodné chyby přímých měření

SkiJo podpora pro vytyčování, řez terénem a kreslení situací

GEODETICKÉ VÝPOČTY I.

PŘEDNÁŠKA 6 INTEGRACE POMOCÍ SUBSTITUCE

Stanovení měrného tepla pevných látek

Obsah přednášky Jaká asi bude chyba modelu na nových datech?

Kalibrace snímků. Jakub Šolc

Úvod do zpracování signálů

Funkce pro studijní obory

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Vliv úhlu distální anastomózy femoropoplitálního bypassu na proudové charakteristiky v napojení

Statistické zpracování výsledků

9.1 Definice a rovnice kuželoseček

Jiří Neubauer. Katedra ekonometrie, FVL, UO Brno kancelář 69a, tel

Zavedeme-li souřadnicový systém {0, x, y, z}, pak můžeme křivku definovat pomocí vektorové funkce.

Bodové odhady parametrů a výstupů

Řešení diferenciálních rovnic v MATLABu

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2.

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

NOVÉ METODY HODNOCENÍ OBRAZOVÉ KVALITY

Funkce - pro třídu 1EB

Poznámka. V některých literaturách se pro označení vektoru také používá symbolu u.

Algoritmus pro hledání nejkratší cesty orientovaným grafem

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu

Zpracování digitalizovaného obrazu (ZDO) - Popisy III

Základy zpracování obrazu

Matematické modelování dopravního proudu

PIV MEASURING INSIDE DRAFT TUBE OF MODEL WATER TURBINE PIV MĚŘENÍ V SAVCE MODELOVÉ VODNÍ TURBÍNY

Autorizovaný software DRUM LK 3D SOFTWARE PRO VYHODNOCENÍ MĚŘENÍ ODCHYLEK HÁZIVOSTI BUBNOVÝCH ROTAČNÍCH SOUČÁSTÍ

=10 =80 - =

CVIČNÝ TEST 3. OBSAH I. Cvičný test 2. Mgr. Zdeňka Strnadová. II. Autorské řešení 7 III. Klíč 17 IV. Záznamový list 19

f(x) = arccotg x 2 x lim f(x). Určete všechny asymptoty grafu x 2 2 =

Transkript:

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící metoda fungující na poměrně jednoduchém principu. Tok částic unášených tekutinou je vyfotografován digitální kamerou ve dvou okamžicích bezprostředně jdoucích za sebou. Vzhledem k tomu, že se tyto části za dobu mezi těmito snímky posunou, známe-li časový interval mezi snímky a vzdálenost posunutí, můžeme vypočítat, jak rychle se tyto částice pohybují. Výsledné rychlosti proudění získané z takovéto dvojice snímků jsou polem okamžitých rychlostí v oblasti zachycené kamerou. Uspořádání měřící aparatury PIV Při použití jedné kamery provádíme měření vždy v jedné rovině a výsledkem je tedy pole složek rychlostí v této rovině. Tomuto uspořádání proto říkáme 2D PIV. 2 Získání vektorů rychlostí Dva snímky zachycené po sobě v časovém intervalu t jsou označeny jako dvojsnímek či dvojobrázek a v dalším zpracování vytvářejí základní datovou sadu pro vyhodnocení rychlosti proudění. Snímky jsou rozděleny do obdélníkových oblastí, které se nazývají vyšetřované oblasti. Pro každou z těchto vyšetřovaných oblastí obrázek částic zachycený prvním snímkem a obrázek částic zachycených druhým snímkem spoluvytváří náhradní vektor. Ten je vypočítán pomocí cross-corelační analýzy. Výsledkem cross-corelace je plocha peaků v korelační rovině. Každý peak svojí výškou a plochou vůči ostatním určuje, s jakou statistickou pravděpodobností došlo v příslušné vyšetřované oblasti k posunutí částic, které je reprezentováno vektorem s počátečním bodem ve středu nulového peaku (odpovídá počátku souřadnicového systému v korelační rovině) a koncovým ve středu každého dalšího peaku. Výpočet 1

nejpravděpodobnějšího posunutí se tak zúží na hledání nejvyššího peaku s nejpříznivějšími statistickými parametry. Protože pro určení vzdáleností obrazu používáme proces rychlé Fourierovy transformace (FFT), neobdržíme kontinuální korelační funkci. Na místo toho máme konečný počet bodů reprezentujících korelační rovinu, kde prostor mezi pixely odpovídá prostoru mezi diskrétními hodnotami FFT funkce. Jelikož známe teoretický tvar křivky v korelační rovině, a proložíme-li tuto známou křivku danými diskrétními body FFT funkce, můžeme přesněji určit střed značkovací částice. Jestliže známe přesně polohu středu každé značkovací částice ve vyšetřované oblasti, můžeme určit vzdálenost mezi prvním a druhým obrázkem částice s přesností menší než jeden pixel pitch. Tento proces se nazývá subpixelová interpolace s jejíž použitím jsme schopni vyhodnotit posunutí částice o velikosti 1/64 pixel pitch. 3 Zpracování dat Na obrázku vidíte schéma algoritmu, kde program nejprve načte dvojici snímků a každému pixelu dle bitové hloubky obrazu přiřadí hodnotu. Poté provede rychlou Fourierovu transformaci těchto polí a ze dvou obdržených funkcí vypočte vzájemnou korelaci a poté na této funkci provede inverzní rychlou Fourierovu transformaci. V takto získané rovině korelačních peaků program vyhledá nejvyšší peak a případně provede subpixelovou interpolaci pro nalezení přesnější polohy maxima. Tímto program vypočte vektor posunutí, který vydělením délkou časového intervalu t mezi pořízením jednotlivých snímků a vynásobením rozměrovým měřítkem pixelů vyjádří výslednou rychlost. Při analýze dat metodou PIV tedy program aplikací korelační funkce na dva snímky vyhodnotí nejpravděpodobnější posunutí v dané oblasti. Teprve poté z posunutí a ze známého časového kroku určí rychlost. 2

4 Jednotlivé kroky programu 4.1 Jedna vyhodnocovaná oblast Pro nejjednodušší případ, kdy nebudeme uvažovat překrývání vyhodnocovaných oblastí a celý čtvercový snímek považujeme za jednu vyhodnocovanou oblast, tedy k získání právě jednoho vektoru posunutí, lze použít následjí program bez subpixelové interpolace, jehož kroky jsou tyto: Pro načtení dvojice snímků do proměných snímeka a snímekb použijeme příkaz imread snimeka=double(imread('a10_01a.tif')); snimekb=double(imread('a10_01b.tif')); Určíme velikost (odpovídá velikosti snímku 64 x 64 pixelů) vel=64; provedeme výpočet korelace pomocí funkce Korelace, kterou popíšeme následně [c] = Korelace (OB1,OB2,vel); %výpočet korelace Program Korelace je uložen v samostatném matlabovském souboru jako funkce na dvou obrázcích a provádí rychlou Fourierovu transformaci obou snímků a do proměnné c vloží korelaci těchto proměnných. function [c] = Korelace (snimeka,snimekb,vel); N = 2*vel; c = zeros(n,n); ffta=fft2(ob1,n,n); fftb=fft2(ob2,n,n); c = real(ifft2(ffta.*fftb)); Poté lze najít nejpravděpodobnější polohu posunutí jako maximum z korelační funkce [x,y] = find(c == max(c(:))); % nalezení celočíselné pozice maxima Vzhledem k tomu, že matlab přiřazuje počátek souřadného systému do středu obrázku je třeba pro složky vektoru posunutí provést korekci posunx=x-vel posuny=vel-y Tento program nám umožnil z dvojice snímků vypočítat vektor (posunx,posuny) nejpravděpodobnějšího směru posunutí částic mezi těmito snímky. 4.2 Více vyhodnocovaných oblastí Pro případ více vyhodnocovaných oblastí snímku je třeba tento snímek rozdělit na příslušné oblasti a v každé oblasti provést výše zmíněný postup. Bežně se udává velikost vyhodnocovyné oblasti a procento prčkrytí jednotlivých oblastí. Celý skript pak má tento tvar, kde je jestě doplněna subpixelová interpolace pro přesnější nalezení vektoru posunutí. snimeka=double(imread('a10_01a.tif')); snimekb=double(imread('a10_01b.tif')); 3

vel=64; %velikost integracni oblasti prekryvani=75; konecx=256; konecy=256; krok=uint16(vel-vel*prekryvani/100); i=0; for px=1:krok:konecx-vel+1; i=i+1; j=0; for py=1:krok:konecy-vel+1; j=j+1; OB1 = snimeka(px:px+vel-1,py:py+vel-1); %vyříznutí podoblasti OB2 = snimekb(px:px+vel-1,py:py+vel-1); [c] = Korelace (OB1,OB2,vel); [x,y] = find(c == max(c(:))); % nalezení celočíselné pozice maxima [x2,y2]=spinterpolace(c,x,y,vel); % poloha středu peaku vypočtená pomocí sub pixel interpolace posunutix(i,j)=[x2-vel]; posunutiy(i,j)=[y2-vel]; Funkce SPinterpolace je funkce, která z napočteného celočíselného maxima x,y v korelační rovině c najde přesnější polohu maxima při předpokládaném tvaru peaku. Je zapsaná jako samostatný soubor v tomto tvaru function [x2,y2]=spinterpolace(c,x,y,vel); f0 = log(c(x,y)); f1 = log(c(x-1,y)); f2 = log(c(x+1,y)); x2 = x+ (f1-f2)/(2*f1-4*f0+2*f2); f0 = log(c(x,y)); f1 = log(c(x,y-1)); f2 = log(c(x,y+1)); y2 = y+ (f1-f2)/(2*f1-4*f0+2*f2); Takto zapsaný program vrací matice vektorů posunutí ve směru x (posunutíx) a y (posunutíy). 5 Příklad použití programu Uveďme stručne příklad použití toho programu. Provedeme výpočet posunutí částic mezi těmito dvěmi snímky. snímek A snímek B 4

Vzhledem k tomu, že máme k dispozici i další snímky z této série, můžeme provést filtraci obrázků pomocí odečtení pozadí. Samotné pozadí získáme jako průměrnou hodnotu ze všech snímků této série, v našem případě zprůměrujeme sedm snímků a toto pozadí odečteme od obou původně vyšetřovaných snímků. pozadí snímek A po odečtení pozadí Tím získáme snímky, které podrobíme výše zmíněné analýze. Výsledná pole vektorů posunutí můžeme dále filtrovat a různě zobrazovat. Pro ukázku je zde provedeno provedeno filtrování mediánem (funkce medfilt2) a poté vykreslení vybraných vektorů posunutí šipkami a barevná mapa absolutních velikostí posunutí. absolutní velikost posunutí vybrané vektory posunutí Pro úplnost uveďme ještě celý program včetně filtrováni pozadí a filtrování vektorů posunutí až po vykreslení zobrazených grafů. clear all close all pozadi=double(imread('aa3_004.bmp')); pozadi=pozadi+double(imread('aa3_005.bmp')); pozadi=pozadi+double(imread('aa3_008.bmp')); pozadi=pozadi+double(imread('aa3_009.bmp')); pozadi=pozadi+double(imread('aa3_010.bmp')); pozadi=pozadi+double(imread('aa3_011.bmp')); pozadi=pozadi+double(imread('aa3_012.bmp')); pozadi=pozadi./7; 5

snimeka=double(imread('aa3_004.bmp'))-pozadi; snimekb=double(imread('aa3_005.bmp'))-pozadi; vel=32; %velikost integracni oblasti prekryvani=75; konecx=800; konecy=256; krok=uint16(vel-vel*prekryvani/100); i=0; for px=1:krok:konecx-vel+1; % zacatek posouvani oblasti IO i=i+1; j=0; for py=1:krok:konecy-vel+1; j=j+1; OB1 = snimeka(px:px+vel-1,py:py+vel-1); %vyříznutí podoblasti OB2 = snimekb(px:px+vel-1,py:py+vel-1); [c] = Korelace (OB1,OB2,vel); %výpočet korelace minc=min(min(c)); c=c+abs(minc)+0.01; %zajištění aby korelační rovina nebyla záporná [x,y] = find(c == max(c(:))); % nalezení celočíselné pozice maxima [x2,y2]=spinterpolace(c,x,y,vel); posunutix(i,j)=(x2-vel); posunutiy(i,j)=-(y2-vel); vektor(i,j)=sqrt(posunutix(i,j)^2+posunutiy(i,j)^2); posunutiy = medfilt2(posunutiy,[3 3]) posunutix = medfilt2(posunutix,[3 3]) vektor = medfilt2(vektor,[3 3]) figure(1) quiver(posunutiy(1:3:,1:6:),posunutix(1:3:,1:6:),1) figure(2) surf (vektor); figure(gcf) % Konec programu. 6