Er is een opstelling ontwikkeld waarbij met behulp van een camera en een microscopische lens een menselijk haar zichtbaar gemaakt kan worden. Echter de optiek heeft een zeer kleine focusdiepte. Dit betekend dat slechts een kleine gedeelte van het haaroppervlakte in focus is. De opstelling biedt echter de mogelijkheid om in micrometer-stapjes het object te verplaatsen. Op deze wijze is het mogelijk tientallen foto’s te maken van het gehele haar waarbij elke keer een ander deel in focus zichtbaar is. Deze foto's hebben wij ter beschikking
nu moet een beeldverwerkingsalgoritme ontwikkeld worden dat vanuit deze verzameling aan beelden een hyperfocused beeld construeerd.
Nu vraag ik mij af of men een idee heeft om dit WISKUNDIG op te lossen.
Bedankt.
Ben
Student universiteit - dinsdag 22 april 2008
Antwoord
Dag Ben,
Ja, dat kan. Tot op zekere hoogte. En, het hangt er natuurlijk vanaf wat je met WISKUNDIG bedoeld. Je gebruikt lineaire algebra. Als je alle pixels van alle foto's nummert kun je het hele beeld beschouwen als een vector. Ook het origineel kun je beschouwen als een vector. Als de absorbtie van je object klein is kun je de beeldvorming beschouwen als een lineaire afbeelding. Een matrix dus. Een onscherp beeld maak je door alle pixels in een cirkel op te tellen. Het totale beeld op één diepte maak je door alle lagen op de juiste manier onscherp te maken en dan op te tellen. Zoals gezegd is dat een lineaire afbeelding die je kunt vastleggen met een matrix. Met behulp van de inverse afbeelding kun je het origineel weer terug krijgen.
Een paar problemen. Om te beginnen is de inverse nogal slecht gedefinierd. Als er een klein beetje ruis op je afbeelding zit, wordt die enorm opgeblazen. Dat kun je verminderen door het resultaat te filteren. Maar dan wordt de scherpte weer minder. Zolang je het hele sample scant zal het wel redelijk gaan. Maar dit beperkt wel de scherpte die je kunt bereiken. Verder zal de dimensie van de matrix snel heel groot worden. Je hebt dus speciale algoritmes en of speciale software nodig om de inverse te berekenen. Met behulp van de juiste fourriertransformatie wordt het wel eenvoudiger.
Als je het algoritme wilt onderzoeken is het verstandig om eenvoudig te beginnen. Neem bijvoorbeeld een 1-dimensionaal sample met twee lagen, b.v. 10 pixels naast elkaar. Je krijgt dan een 20x20 matrix die vrij eenvoudig in elkaar zit een b.v. in matlab wel te inverteren is. Als dat lukt kun je grotere samples met meer lagen proberen. De rekentijd en de problemen nemen dan snel toe. Je kunt dan de bovengenoemde truuks proberen. Je merkt vanzelf hoever je komt. Als je met WISKUNDIG bedoelt dat je het niet numeriek wilt doen, dan zijn de mogelijkheden nog wat beperkter. Maar het bovengenoemde voorbeeld is nog wel te doen.