Någon som vet hur man gör för att kolla om en bild från tex kamera stämmer med ett vist mönster. Det finns massor av olika sätt, och vilket som är bäst är beroende på vad du har för förutsättningar. det är en cirkel fom som jag vill kolla så att den är rund och inte har några defekter.Därför måsten den kolla så att radien är exakt den samma runt om sen skall den också kolla i fall sen kan finnas några avlikelse i själva cirkeln tex. sprikor eller liknade. En cirkel är mycket lämpad att använda Hough-transform till, i synnerhet om den har fast radie. Vilka prestanda krav har du? hitta ett exempel på codeproject.åter kommer med lite kod när jag ändra det som jag vill ha det.image recognize
tex.man har en enkrona och vill kolla att en är exakt rund.Vet att det har varit uppe något liknade innan men hittar det inte.
Antar att man får räkna pixel för pixel men hur gör man det på ett bra sätt?Sv: image recognize
Om det handlar om en ganska enkel grej, som en cirkel, en oval, eller ett streck, så kan du använda Hough-transform.
Det här kan ju naturligtvis även appliceras på bilder där ovanstående hänger ihop på något sätt. (Hough-transformen är väldigt förlåtande mot hål i strecken etc.)
I övrigt finns det massor av andra varianter; watershed, segment growing, konturletare, osv. Men förklara närmare vad det är du är ute efter.Sv:image recognize
Sv: image recognize
Kommer den alltid helt och hållet ligga inne i bilden?
I så fall skapar du en matris; lika stor som bilden (eller egentligen en radie in från kanten på den, men skit samma). Vi kallar denna matris för B, och din originalbild för A, och att du vill ha en specifik radie r.
Då gör du så här:
for(x = 0 to xmax)
for(y = 0 to ymax)
Rita cirkel i B, med radie r, centrerad i punkten (x,y), och med intensitet A(x,y).
next
next
Du måste i varje cirkelritning i B <b>lägga till</b> intensiteten från A; snarare än att bara byta ut den.
Den punkt i B som har störst intensitet är den där cirkeln i A har sin mittpunkt. Genom att studera värdet på den kan du få reda på om det finns svagheter, ju lägre värde, desto sämre match mot cirkeln.
EDIT: riskerar cirkeln att få en varierande radie kan du se det på två sätt; det enkaste är att bara studera intensitetsfördelningen i B. Om den högsta punkten och den näst högsta punkten inte skiljer sig tillräckligt mycket så är den större, om den högsta punkten är för låg är det sprickor eller en för liten cirkel.Sv: image recognize
Det finns hårdvarulösningar för detta om det är en industriell tillämning du pratar om.Sv:image recognize