Räkna ut ett visst område i bild

Permalänk
Medlem

Räkna ut ett visst område i bild

Hejsan,

Jag har en rutat bild, ungefär som på den här bilden: http://jemla.se/images/KjCPRxTc.jpg

Som ni ser på bilden så går det en typ av flod på bilden, det svarta på bilden. Tabelcellerna som ligger ovanför detta svarta är ej klickbara.

Jag undrar helt enkelt om det är möjligt att räkna ut matematisk vilka rutor som inte får bli klickbara nrä man genererar ut dessa på bilden. Man räknar ut vart denna floden går på bilden, sen anger man något matetmatiskt i koden som tar hänsyn till detta och på så vis sätter dessa rutor som kommer på floden som Ej klickbara. Är detta möjligt? Eller måste jag manuellt sätta dessa rutor som ej klickbara när jag har genererat fram tabellcellerna?

Visa signatur
Permalänk
Medlem

beror väl på hur du vet var floden är. Om du vet att floden är x antal pixlar ifrån kanten och tar upp y antal pixlar samtidigt som du vet att en ruta är z pixlar i bredd så kan du ju enkelt veta vilka rutor som ligger över floden.

Permalänk

Allt går. Min första tanke är att göra en kollisions check med rutan och floden. Kolliderar dom så sätt dem rutorna till "ej klickbar".

Visa signatur

| MacBook Pro 2016 Touch Bar 15" |

| 16GB Ram DDR4 2133 MHz | i5 6500k | RX 480 4GB | ASUS Z170-A | Fractal Design XL | Corsair TX650W |

CITERA FÖR SVAR

Permalänk
Medlem
Skrivet av Tallkotten:

Allt går. Min första tanke är att göra en kollisions check med rutan och floden. Kolliderar dom så sätt dem rutorna till "ej klickbar".

Man måste ju bestämma vart vattnet går. Sen kan man ju göra en kollisionscheck.

Skrivet av CTH:

beror väl på hur du vet var floden är. Om du vet att floden är x antal pixlar ifrån kanten och tar upp y antal pixlar samtidigt som du vet att en ruta är z pixlar i bredd så kan du ju enkelt veta vilka rutor som ligger över floden.

Nej, det vet jag inte, jag tog en exempelbild ifrån google, så jag har själv inte ritat den.

Visa signatur
Permalänk
Medlem

Eftersom du själv genererar cellerna borde du ju lätt kunna kolla om cellen du just genererade är en flod-cell. Om du kan detta borde det vara lätt att spara undan alla positioner som inte ska vara klickbara.

Permalänk
Medlem
Skrivet av xilli:

Eftersom du själv genererar cellerna borde du ju lätt kunna kolla om cellen du just genererade är en flod-cell. Om du kan detta borde det vara lätt att spara undan alla positioner som inte ska vara klickbara.

Men hur ska jag veta VART på bilden floden befinner sig? Jag måste ju veta det för att göra rutorna som genereras ej klickbara.

Visa signatur
Permalänk
Medlem
Skrivet av Brajan:

Men hur ska jag veta VART på bilden floden befinner sig? Jag måste ju veta det för att göra rutorna som genereras ej klickbara.

Jag antog att du genererade grafiken samtidigt som cellerna.

Permalänk
Medlem
Skrivet av xilli:

Jag antog att du genererade grafiken samtidigt som cellerna.

Bilden är bara en bakgrundsbild i en tabell.

Visa signatur
Permalänk
Medlem

Klart det går, men det låter galet ovärt om din tillämpning är väldigt lik exemplet.

På något sätt måste du ju översätta det icke-klickbara området till ett väl valt antal polynom eller någon slags parametrisk bezier-historia. Ska detta göras automatiskt och generelllt så tänker jag mig att det inte är helt trivialt, om än inte omöjligt.

Permalänk

Om det nu är så att du inte själv genererar floden utan bara tagit en bild och vill "scanna" av den bilden för att få informationen, så går även det.

Men du måste ha vissa standarder t.ex. att floden alltid har en viss färg (SOM INTE DELAS AV ANNAT). Gör du detta kan du ta bilden och sedan dela upp "scanning"-areor utefter dina rutor. När du sedan läser av bilden i dessa areor så letar du efter en färg som stämmer överens med flodens färg, hittar du en sådan så sätter du den rutan till "ej klickbar" och hoppar till nästa.

Detta kan ganska smärtfritt byggas upp med nästlade for-loopar.

Visa signatur

| MacBook Pro 2016 Touch Bar 15" |

| 16GB Ram DDR4 2133 MHz | i5 6500k | RX 480 4GB | ASUS Z170-A | Fractal Design XL | Corsair TX650W |

CITERA FÖR SVAR

Permalänk
Medlem
Skrivet av Tallkotten:

Om det nu är så att du inte själv genererar floden utan bara tagit en bild och vill "scanna" av den bilden för att få informationen, så går även det.

Men du måste ha vissa standarder t.ex. att floden alltid har en viss färg (SOM INTE DELAS AV ANNAT). Gör du detta kan du ta bilden och sedan dela upp "scanning"-areor utefter dina rutor. När du sedan läser av bilden i dessa areor så letar du efter en färg som stämmer överens med flodens färg, hittar du en sådan så sätter du den rutan till "ej klickbar" och hoppar till nästa.

Detta kan ganska smärtfritt byggas upp med nästlade for-loopar.

Hur ska PHP veta vad för färg floden har?

Visa signatur
Permalänk
Skrivet av Brajan:

Hur ska PHP veta vad för färg floden har?

PHP som i programmeringsspråket PHP?

Man får ju skriva algoritmer för det, venne hur man läser bilddata från PHP då jag aldrig gjort det. Men tycker det borde fungera.

Visa signatur

| MacBook Pro 2016 Touch Bar 15" |

| 16GB Ram DDR4 2133 MHz | i5 6500k | RX 480 4GB | ASUS Z170-A | Fractal Design XL | Corsair TX650W |

CITERA FÖR SVAR

Permalänk
Hedersmedlem
Skrivet av Brajan:

Hur ska PHP veta vad för färg floden har?

imagecolorat kan kanske vara något?
http://se2.php.net/manual/en/function.imagecolorat.php

Permalänk
Medlem
Skrivet av Brajan:

Hur ska PHP veta vad för färg floden har?

Låter som att du behöver en människa för att lösa problemet istället för en dator.
När du programmerar så måste du ju självklart ha några former av regler för vad som kännetecknar vissa egenskaper. Exempelvis hur en flod ser ut eller liknande. Om du ska göra ett program som kan tolka ALLA bilder så har du löst mer än bara detta problem.

Vad har du för förutsättningar? Hur kommer detta användas? Kan det komma in helt olika bilder där ditt program ska tolka vad som är mark och vad som är flod?

Detta är inte speciellt effektivt att göra i PHP men det är fullt möjligt att analysera pixlar i en bild.
http://www.php.net//manual/en/function.imagecolorat.php

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?