Hej! Har ingen riktig koll på det här men jag tror jag vet hur jag skulle försöka lösa det...bild analys.
Jag har ett problem som säkert någon kan hjälpa mig.
Jag håller på att utveckla en applikation i ASP.NET som läser in ett foto/bild, som är fotat med t ex en digitalkamera eller mobiltelefonkamera, och tolkar informationen i bilden. Det som kommer att fotas av utav användaren är en fyrkantig ruta på ett papper/tidning, och inuti rutan finns något slags objekt/pryl.
Det jag försöker göra, men som är lite problematiskt är att lokalisera rutan i bilden. Det hade inte varit så svårt om användaren fotade av rutan rakt ovanför, utan rotation och brus. Men sådant är knappast fallet.
Jag har hittills gjort om bilden til gråskala och trösklat den så att ljusa pixlar blir vita och mörka svarta. Det ger en helt svart/vit bild där man ser rutan tydligt, och många objekt suddas ut. Men finns det andra mörka objekt i bilden kommer även de finnas kvar.
Har jag väl hittat ett hörn på rutan har jag nog löst det mesta, men jag har försökt gå igenom bilden pixel för pixel för att hitta detta. Ibland fungerar detta, men så fort det är något annat störande objekt i bilden blir det fel.
Någon som har någon bra idé på vad man kan lösa detta? Skulle man kunna gå igenom bilden och leta efter ett visst mönster? typ ett hörn av en fyrkant. Då måste man dock tänka på att hörnet/fyrkanten kan vara roterad.
Vet inte om min lösning är speciellt bra, så andra förslag uppskattas också!
mvh
AndreasSv: bild analys.
Vi antar att du alltid har hela ramen i bild (jag fattade det som att kanterna på bilden var svarta iaf?) så att inget av den fattas.
Det första du gör är att manuellt plocka bort alla prickar som är för små (eller snarare, undvika att bry dig om dem i framtiden)
Leta nu efter stora fält, börja uppifrån vänster. När du hittat ett (du letar pixel, kollar sedan runtomkring) så följer du med några pixlars mellanrum så du vet ungefär var linjen går.
Gör ett överslag så du vet på ett ungefär hur bilden ser ut (ett rakt streck från vänster -> höger, från nedre vänster -> övre höger eller från övre vänster -> nedre höger.)
Utifrån detta borde du kunna gissa var du borde leta efter nästa linje. Där de skär varandra har du ett hörn. Nu får du köra pixel-för-pixel i hörnet för att få exakta kordinaten.