Kezdőoldal » Számítástechnika » Programozás » Kamera képét hogyan tudnám...

Kamera képét hogyan tudnám megkapni egy tömbben C# - ben?

Figyelt kérdés
Arra gondolok, hogy lennem egy 3 dimenziós tömb, és abba benne lenne minden képpont rgb értéke

2014. nov. 25. 19:38
1 2
 1/16 anonim ***** válasza:

Ha így megfelel, találtam egy Projektet egy másik fórumon, ahol valaki hasonló webkamerakezelőt írt C#-ban. Nem néztem át komolyabban a működési elvét, nézegesd ha érdekel:

[link]

2014. nov. 25. 21:01
Hasznos számodra ez a válasz?
 2/16 A kérdező kommentje:

Hááát.... Ez szép és jó csak nem tömbben kapja vissza az ember, meg nem működik...


De azért köszönöm a választ

2014. nov. 25. 21:11
 3/16 anonim ***** válasza:

Sehogy.

Illetve biztos meg lehet írni egy ilyen eszközt, csak túl sok értelmét nem látom.

2014. nov. 25. 22:09
Hasznos számodra ez a válasz?
 4/16 A kérdező kommentje:
Olyasmit szeretnék csinálni ,hogy megnyom egy gombot, akkor készít egy tömböt amibe belerakja a kép rgb értékeit és utána ki lehet jelölni mezőket, és ha abban változás van akkor csináljon v.mit de legyen valamennyi tolerancia
2014. nov. 26. 08:38
 5/16 Szaby34 válasza:
Tehát ha jól értem, akkor te mozgásérzékelőt szeretnél implementálni C#-ban... Lehetni lehet, csak szerintem ezt a tömbös ötletedet dobd el.
2014. nov. 26. 08:48
Hasznos számodra ez a válasz?
 6/16 A kérdező kommentje:
Rendben, és akkor hogy lehetne?
2014. nov. 26. 09:05
 7/16 anonim ***** válasza:

Elsőnek nyelvfüggetlenül szagolj bele a képfeldolgozás rendkívül széles szakirodalmába, és utána tudsz gondolkozni rajta.


A tömbös téma azért esélytelen, mert a legkisebb zavar is színváltozást fog okozni, vagy egy árnyék is színváltozást eredményez. Per-pixel összehasonlításban sosem állapítod meg, hogy valóban történt-e változás, vagy sem.


De, ismétlem: ennek a témának nagyon komoly szakirodalma van, nem egy pár mondatban megválaszolható téma.

2014. nov. 26. 13:05
Hasznos számodra ez a válasz?
 8/16 A kérdező kommentje:

Igen a tömbös megoldásban egy pixel is elváltozást okozna, de számolnám az elváltozásokat, és beálítanék egy tűréshatárt!


PL.: van egy tömbünk az 1,1,1. helyen ez van benne [234,12,57] és az alap képben ez van: [123 , 56 , 123] akkor kivonnám a második tömbből az elsőt, ha negatív a szám akkor pozitívvá változtatnám és megnézném mennyi a különbség, ha ez egy meggadott számnál nagyobb akkor növelném az elváltozásokat, és ha az elváltozások is nagyobbak egy megadott számnál akkor bizony mozgás van :D

2014. nov. 26. 14:01
 9/16 anonim ***** válasza:

Ez nem ennyire egyszerű.

Igen fontos a hatékonyság, ez meg olyan lassú lenne, hogy semmire se lenne jó.

Ez ennél jóval bonyolultabb téma, olvass utána, ha érdekel, de ez nem 2 hónapnyi programozás után fog menni.

2014. nov. 26. 14:09
Hasznos számodra ez a válasz?
 10/16 anonim ***** válasza:

A legfontosabb kérdés, hogy milyen formátumú a kép? Ha jól tudom a jpg cos transzformációt alkalmaz...ezt egyelőre felejtsd el. Na de ha bmp-t használnál akkor ami nem kódolja a képet akkor megnézheted a szerkezetét:


[link]


És ha a c++-t át tudod alakítani c#-á akkor itt a kód is:


#include <iostream>

#include <fstream>


using namespace std;


int main()

{

ifstream ifs;

ofstream ofs;

unsigned long width, height, tmorites, paletteColors;

unsigned short colordepth;


ofs.open("output.txt");

ifs.open("test.bmp");


ifs.ignore(18);

ifs.read((char*)&width, 4);

ifs.read((char*)&height, 4);

ifs.ignore(2);

ifs.read((char*)&colordepth, 2);

ifs.read((char*)&tmorites, 4);

ifs.ignore(12);

ifs.read((char*)&paletteColors, 4);

ifs.ignore(4);


unsigned char a;

int i = 0;

int j = 1;

int s = 0;

s = (width * 3) % 4;


if(paletteColors == 0)

{

while(ifs >> a)

{

i++;


if(s == 0)

{

if(j < 4)

{

ofs<<(int)a<<" ";

j++;

}

else

{

ofs<<" "<<(int)a<<" ";

j = 2;

}


if(i % width == 0)

ofs<<endl;

}



if(s != 0)

{

if(i % (width * 3) == 0)

{

ofs<<endl;

ifs.ignore(s);

continue;

}


if(j < 4)

{

ofs<<(int)a<<" ";

j++;

}

else

{

ofs<<" "<<(int)a<<" ";

j = 2;

}

}

}

}


ifs.close();


cout<<endl<<"I: "<<i<<endl<<"J: "<<j<<endl;

system("pause");

return 0;

}

2014. nov. 26. 19:08
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!