Forum » Programiranje » C# algoritem za iskanje podslike v sliki
C# algoritem za iskanje podslike v sliki
Vapo1 ::
nic ne najdem na google... najbrz zato ker ne poznam zargona iz tega podrocja..."find subpicture in picter" etc...ne najde nic...
torej problem je jasen rad bi recimo naredil screenshot(to znam) kjer je viden browser in recimo home button... potem bi rad ta screenshot analiziral z nekim algoritmom ki bi mi povedal ce se v njemu nahaja podslika home buttona ... to podsliko homebuttona bi seveda ze prej naredil (recimo bi v paintbrushu izrezal iz screenshota sliko tega gumba)....
torej ce me lahko kdo kam napoti kjer je to ze obdelano ali pa pove kako s to naredi..... in a bostajajo kaksni advanced algoritmi lai je preprosto treba se pixel by pixel premikati cez celo sliko in pocekirati ce se vsi pixi iz podslike ujemajo...
torej problem je jasen rad bi recimo naredil screenshot(to znam) kjer je viden browser in recimo home button... potem bi rad ta screenshot analiziral z nekim algoritmom ki bi mi povedal ce se v njemu nahaja podslika home buttona ... to podsliko homebuttona bi seveda ze prej naredil (recimo bi v paintbrushu izrezal iz screenshota sliko tega gumba)....
torej ce me lahko kdo kam napoti kjer je to ze obdelano ali pa pove kako s to naredi..... in a bostajajo kaksni advanced algoritmi lai je preprosto treba se pixel by pixel premikati cez celo sliko in pocekirati ce se vsi pixi iz podslike ujemajo...
fiction ::
S tem ali je nekaj na sliki oz. kje je se ukvarja rac. vid (computer vision). Problem je precej tezek, ce si predstavljas, da imas recimo lahko fotografijo na kateri je predmet zaradi drugacnega kota, svetlobe itd. cisto drugacen kot tvoja referencna slika.
Seveda je v tvojem primeru lazje. V vsakem primeru bos moral nekako preiskati veliko sliko npr. tako da po njej premikas manjso za 1 piksel (ne obstaja nek magic nacin kako nekaj videti, brez da bi pozorno pogledal).
Potem gledas kaksna je korelacija pri vsakem premiku in tam kjer je najvecja reces, aha, tukaj je najbrz home gumb. Ce je vse skupaj prevec razlicno lahko reces tudi "ne najdem home gumba". Korelacijo gledas lahko tako da primerjas barvo posameznega piksla z istolezecim pikslom na drugi sliki in to potem naredis za vse piksle manjse slike. Ampak tukaj ni tako, da gledas, ce je barva cisto enaka, ampak ce je dovolj podobna. Tudi vsi piksli najbrz ne bodo nikoli ok. Se pravi, ce je razlika v barvi dovolj majhna tocko sprejmes in ce je stevilo sprejetih tock tam kjer jih je najvec dovolj veliko je kul. Lahko pa nardis kaj cisto drugacnega. Pogledas kje na sliki je najvec sive barve, poskusas najti ravne crte oz. pravokotnike itd itd.
Seveda je v tvojem primeru lazje. V vsakem primeru bos moral nekako preiskati veliko sliko npr. tako da po njej premikas manjso za 1 piksel (ne obstaja nek magic nacin kako nekaj videti, brez da bi pozorno pogledal).
Potem gledas kaksna je korelacija pri vsakem premiku in tam kjer je najvecja reces, aha, tukaj je najbrz home gumb. Ce je vse skupaj prevec razlicno lahko reces tudi "ne najdem home gumba". Korelacijo gledas lahko tako da primerjas barvo posameznega piksla z istolezecim pikslom na drugi sliki in to potem naredis za vse piksle manjse slike. Ampak tukaj ni tako, da gledas, ce je barva cisto enaka, ampak ce je dovolj podobna. Tudi vsi piksli najbrz ne bodo nikoli ok. Se pravi, ce je razlika v barvi dovolj majhna tocko sprejmes in ce je stevilo sprejetih tock tam kjer jih je najvec dovolj veliko je kul. Lahko pa nardis kaj cisto drugacnega. Pogledas kje na sliki je najvec sive barve, poskusas najti ravne crte oz. pravokotnike itd itd.
Vapo1 ::
sem upal da dobim kje kaksno ucnkovito kodo za najbolj simple identifikacijo (kjer so vsi pixli povsem identicni.. nobene rotacije slik .. nobenih napak v barvah pixlov..)
v Autohotkey skripti je ImageSearch funkcija ki nareid screenshot in posice sliko (http://www.autohotkey.com/docs/commands..... in dela ful hitro (zelo uporabna je ta autohotkey funkcija in sem jo hotel nekako predelati za c# ker me autohotkey omejuje drugace).... jaz sem naredil neko simple pixel by pixel komnparacijo pa dela zelo pocasi.. jeba
v Autohotkey skripti je ImageSearch funkcija ki nareid screenshot in posice sliko (http://www.autohotkey.com/docs/commands..... in dela ful hitro (zelo uporabna je ta autohotkey funkcija in sem jo hotel nekako predelati za c# ker me autohotkey omejuje drugace).... jaz sem naredil neko simple pixel by pixel komnparacijo pa dela zelo pocasi.. jeba
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Gimp (ali paint.net / ipd.) - odstranitev/skritje 'timestamp'-a?Oddelek: Pomoč in nasveti | 1571 (1238) | slitkx |
» | kako narediti program ki bere drugi programOddelek: Programiranje | 5779 (4092) | imagodei |
» | hdmi 20mOddelek: Elektrotehnika in elektronika | 5873 (4546) | LordTado |
» | Razvoj analognih fotoaparatov pod velikim vprašajem (strani: 1 2 3 4 5 )Oddelek: Novice / Ostale najave | 16976 (14341) | BigWhale |
» | Ali je točka znotraj območja?Oddelek: Programiranje | 1089 (901) | Thomas |