Räkna prickar på tärning i bild?

Permalänk
Medlem

Räkna prickar på tärning i bild?

Funderar på att skriva ett litet program som klarar av att identifiera (räkna) hur många prickar en tärning visar i en bild.

Är det någon som har erfarenhet av liknande? Tänkte använda c# till programmet men har inte den blekaste om vart jag ska börja.

Det handlar alltså om en form av bildanalys.

Alla länkar och idéer är välkomna.

//milkacid

Permalänk

Borde vara relativt enkelt. Har du alltid likadant input?

Edit:

Börja med att skapa en bitmap, det hittar du hur du gör på MSDN. Sen kan du använda dig av

Color c = image.GetPixel(x, y); var brightness = c.GetBrightness();

Sen när du har fått ut ljusheten vet du ju var prickarna är, det gäller bara att räkna ut vilka mörka pixlar som tillhör samma prick

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Tanken är att jag ska slå ett gäng tärningar i en låda med glasbotten, under glaset skall det sitta en kamera. Kameran ska sedan vara kopplad till datorn med programmet, när man har slagit tärningarna så skall man kunna klicka på en knapp i programmet som automatiskt tar reda på hur många prickar som visas.

Problemet är att när man slår en 6:a så måste programmet även regera på det, varje slagen 6:a skall räknas som 0.

Permalänk
Citat:

Ursprungligen inskrivet av milkacid
Tanken är att jag ska slå ett gäng tärningar i en låda med glasbotten, under glaset skall det sitta en kamera. Kameran ska sedan vara kopplad till datorn med programmet, när man har slagit tärningarna så skall man kunna klicka på en knapp i programmet som automatiskt tar reda på hur många prickar som visas.

Problemet är att när man slår en 6:a så måste programmet även regera på det, varje slagen 6:a skall räknas som 0.

Nu är du nog inne på rätt så djupt vatten men testa det jag skrev. Du bör kanske jobba med kontraster istället för bara hur ljus en punkt är

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Ha belysning så att det inte finns några svarta fält andra än prickarna i bilden och gör som KurreKula sa.
Det fina är ju att algoritmen för prickar stämmer oavsett vilken ledd tärningarna är på och du behöver ju inte heller skilja på individuella tärningar.

Permalänk
Medlem

Låter som en variant av Vision system, kanske kan du söka på det of få fram exempel på hur man letar upp saker i omgivningen.
Robotar som navigerar en bana använder ett sådan system för att indetifiera hinder.
Kör du i svartvitt och kan få ner antalet färger till så få som möjligt är det ganska enkelt att sortera ut olika mönster.

Visa signatur

System:\Dator\Spel>2600k¤5ghz_-_32Gb_-_MSI_3070.exe
System:\Dator\Lab>RaspberryPi_4_-_8Gb.com

Permalänk
Medlem

Om du kan anta att det är bra kontrast (prickarna en viss färg, mjuk bakgrund etc. så kan du gör som följer:

* Gör om till binär bild, allt innom vissa färgvärden blir vitt, allt annat svart. Du bör nu ser prickarna och inget annat.
* Om du har mycket brus i bilden så gör du några steg med väx/krymp-filter så att brus försvinner och ev hål i prickarna fylls.
* Kör krymp-till-punkt-filter tills bilden inte förändras. Dina prickar ska nu vara endast en pixel stora.
* Räkna antalet pixlar som är markerade.

Ska se om jag hittar länkar till hur väx/krymp fungerar.

EDIT: http://www2.cvl.isy.liu.se/Education/UnderGraduate/TSBB08/dow...
Kapitel 3 handlar om binär bildbehandling.

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.