 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
andrelinoge Član


Pridružen-a: Sob 13 Nov 2004 1:43 Prispevkov: 63 Aktiv.: 0.27 Kraj: vse od Murske Sobote pa do Maribora
|
Objavljeno: Ned Feb 19, 2006 1:10 pm Naslov sporočila: prenos iz MemoryDC-ja v polje |
|
|
Rad bi napisal programček, s katerim bi lahko preko kamere prepoznaval predmete. Mislim, da bi za to bilo še najboljše, če sliko s kamere shranim v neko polje, saj lahko s poljem potem marsikaj počnem. Zamislil sem si polje velikosti 640 x 480 x 3 (resolucija in RGB vrednosti pikslov). Tako bi imel shranjene pozicije in barve vseh pikslov slike.
Težava nastane pri prenosu slike v to polje. 24 bitno sliko imam trenutno shranjeno v Memory DC-ju In če želim vse piksle prenesti v polje to storim tako:
int slika[640][480][3];
for(int y = 0; y < 480; y ++)
{
for(int x = 0; x < 640; x ++)
{
COLORREF Color;
Color = GetPixel(MemoryDC, x, y);
slika[x][y][0]=GetRValue(Color);
slika[x][y][1]=GetGValue(Color);
slika[x][y][2]=GetBValue(Color);
}
}
Težavo pa predstavlja žalostno počasna funkcija GetPixel(). Obstaja kaka hitrejša in po možnosti preprosta rešitev? Sem že obupal nad Googlom, saj nisem našel nič meni razumljivega
Delam z borlandovim C++
Hvala za prijazno pomoč. |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.61 Kraj: Trzic
|
Objavljeno: Ned Feb 19, 2006 1:19 pm Naslov sporočila: |
|
|
Možnost je, da uporabiš API funkcije za zajemanje videa. Pred časom sem delal nekaj podobnega v VB-ju in je nekako delalo...
Na ta način lahko celoten video buffer prekopiraš v svojo aplikacijo in ga potem urejaš. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.55
|
Objavljeno: Ned Feb 19, 2006 1:32 pm Naslov sporočila: |
|
|
Kaksne oblike pa je tisti MemoryDC ? Ce poznas obliko (recimo da gre za 640x480x4 zaporedne bajte, kjer je vsak piksel poravnan na longword boundary), potem lahko svojo strukturo prilagodis temu (dodas se eno polje, ki ne bo vsebovalo nobene koristne informacije in bo skrbelo samo za ustrezno poravnavo) in naredis cast na ta MemoryDC; v tem primeru ti ne bo treba nicesar pretvarjati, kopirati, itd., saj bo struktura ze vsebovala vse podatke (ce jo bos oblikoval pravilno). |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.61 Kraj: Trzic
|
|
Nazaj na vrh |
|
 |
andrelinoge Član


Pridružen-a: Sob 13 Nov 2004 1:43 Prispevkov: 63 Aktiv.: 0.27 Kraj: vse od Murske Sobote pa do Maribora
|
Objavljeno: Ned Feb 19, 2006 6:43 pm Naslov sporočila: |
|
|
Hm... Da bi naj uporabil API funkcije sem že marsikje prebral. Če bi vedel kaj sploh je to in kako se jih uporablja... Sem pač začetnik
Se mi pa zdi sokratova ideja zanimiva. Le da nisem siguren če razumem tisti cast. MemoryDC naredim tako:
HDC MemoryDC;
MemoryDC = CreateCompatibleDC(NULL);
ter nato iz Clipboard-a shranim sliko (zaenkrat delam na tak način)
OpenClipboard(NULL);
SelectObject(MemoryDC, (HBITMAP)GetClipboardData(CF_BITMAP));
CloseClipboard();
V MemoryDC-ju imam torej shranjeno sliko velikosti namizja ali ne? (1024x768-) Rabim pa samo 640x480. Torej kakšno strukturo rabim k temu in kako izvedem casting ali kaj že? |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70769.71
|
Objavljeno: Ned Feb 19, 2006 6:54 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.61 Kraj: Trzic
|
Objavljeno: Ned Feb 19, 2006 7:51 pm Naslov sporočila: |
|
|
Pa omogoča Matlab zajemanje slike iz video naprave.
andrelinoge-a sem najprej razumel, da želi analizirati sliko z neke kamere ali kaj podobnega... |
|
Nazaj na vrh |
|
 |
iskra Član

Pridružen-a: Tor 14 Okt 2003 10:13 Prispevkov: 797 Aktiv.: 3.36 Kraj: Lokev ,Boa , KOPER
|
Objavljeno: Ned Feb 19, 2006 9:32 pm Naslov sporočila: |
|
|
Andrelinoge kar precej na to temo je TU Poglej prispevke Dr. Istoka Krambergerja on je strokovnjak na tem področju. _________________ L.P. iskra |
|
Nazaj na vrh |
|
 |
andrelinoge Član


Pridružen-a: Sob 13 Nov 2004 1:43 Prispevkov: 63 Aktiv.: 0.27 Kraj: vse od Murske Sobote pa do Maribora
|
Objavljeno: Ned Feb 19, 2006 10:54 pm Naslov sporočila: |
|
|
Z matlabom bi mogoče res šlo samo je težava ker ga nimam. Rad pa bi ostal pri legalnih stvareh. Iskra hvala da si me spomnil na gospoda Krambergerja, ki me je mučil eno leto na faksu Bom pogledal, kaj ima on za povedati lepega. Seveda pa še naprej zbiram predloge  |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 498 dni
Powered by phpBB © 2001, 2005 phpBB Group
|