Centers fout

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allemaal


Ik ben dus aan het programmeren in C#.
En zou van een foto de kleuren moeten kunnen declareren.
Ik neem dus van een foto 9 pixels.
En aangezien er veel variatie op elke pixel zit, nemen we rond elk punt nog eens 8 punten er rond.

Dit is mijn code die ik hiervoor gebruik
Hier declareer ik dus ieder center

code:
1
2
3
4
5
6
7
8
9
10
int[,] Centers = new int[9, 2];
Centers[0, 0] = 60; Centers[0, 1] = 30;
Centers[1, 0] = 170; Centers[1, 1] = 30;
Centers[2, 0] = 270; Centers[2, 1] = 30;
Centers[3, 0] = 60; Centers[3, 1] = 130;
Centers[4, 0] = 170; Centers[4, 1] = 130;
Centers[5, 0] = 270; Centers[5, 1] = 130;
Centers[6, 0] = 60; Centers[6, 1] = 245;
Centers[7, 0] = 170; Centers[7, 1] = 245;
Centers[8, 0] = 270; Centers[8, 1] = 245;

En hier neemt hij het middelpunt + de 8 punten er rond.

code:
1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < 9; i++)
{
Color[0] = photo.GetPixel((Centers[i, 0]), (Centers[i, 1]));
Color[1] = photo.GetPixel((Centers[i, 0] + 5), (Centers[i, 1]));
Color[2] = photo.GetPixel((Centers[i, 0]), (Centers[i, 1] + 5));
Color[3] = photo.GetPixel((Centers[i, 0] - 5), (Centers[i, 1]));
Color[4] = photo.GetPixel((Centers[i, 0]), (Centers[i, 1] - 5));
Color[5] = photo.GetPixel((Centers[i, 0]) + 5, (Centers[i, 1] - 5));
Color[6] = photo.GetPixel((Centers[i, 0]) - 5, (Centers[i, 1] + 5));
Color[7] = photo.GetPixel((Centers[i, 0]) + 5, (Centers[i, 1] + 5));
Color[8] = photo.GetPixel((Centers[i, 0]) - 5, (Centers[i, 1] - 5));
}


Nu geeft hij een fout bij Color[4] en volgende.
Mijn fout is "ArgumentOutOfRangeException"
"Parameter moet positief zijn"

Ik hoop dat jullie snel kunnen antwoorden.
groetjes jens

Acties:
  • 0 Henk 'm!

  • Jeroen V
  • Registratie: Februari 2004
  • Laatst online: 16-09 21:23

Jeroen V

yadda yadda yadda

Gewoon even er doorheen steppen, dan zie je het vanzelf.....

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je code post, gebruik dan aub code tags
Verwijderd schreef op donderdag 15 april 2010 @ 15:44:
Ik hoop dat jullie snel kunnen antwoorden.
Als jij in tijdnood zit met een (school?)opdracht is dat niet ons probleem. Mensen reageren heus wel als ze zin/tijd hebben ;)

Verder is dit gewoon een kwestie van debuggen: Debuggen: Hoe doe ik dat?

[ Voor 3% gewijzigd door RobIII op 15-04-2010 16:32 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sorry ik ben nieuw in het programmeren.
En zie dus mijn fout niet.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 15 april 2010 @ 16:34:
Sorry ik ben nieuw in het programmeren.
Dat is helemaal niet erg, we zijn allemaal ooit bij nul begonnen ;)
En dat is dan meteen een leerpuntje: debuggen. Programmeren is (ook) debuggen. Ga dus debuggen. Leer debuggen. Debuggen. Had ik al debuggen gezegd? ;) Debuggen: Hoe doe ik dat? En probeer de fout te begrijpen. Er is iets "out of range" (ofwel; buiten toegestane grenzen) en hij zeurt over iets dat positief moet zijn. Dus ergens heb je een negatief getal dat (dus) buiten een bepaalde grens gaat. Hint: je gebuikt arrays. En die elementen hebben indexes van 0...x. En ergens ga je dus negatief = out of range.

Begin eens met het zetten van een breakpoint in visual studio (even aangenomen dat je die gebruikt) op (in je topicstart) regel 7 3 ofzo in het tweede blokje code (je geeft al aan dat het daar fout gaat) en stap dan stap voor stap verder. Als alternatief kun je met Console.Writeline of iets dergelijks bepaalde waarden (hint: de indices berekende waardes) outputten en zo uitzoeken of alles wel gaat zoals je dat bedoeld had.

Oh, en anders moet je even debuggen. :)

[ Voor 40% gewijzigd door RobIII op 15-04-2010 16:59 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

RobIII schreef op donderdag 15 april 2010 @ 16:36:
Hint: je gebuikt arrays. En die elementen hebben indexes van 0...x. En ergens ga je dus negatief = out of range.
IndexOutOfRangeException != ArgumentOutOfRangeException.

Die laatste toont aan dat een functieargument buiten het bereik valt. In de beschrijving staat ook "Parameter moet positief zijn", wat lijkt te suggereren dat een van de argumenten naar GetPixel() negatief is.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
.oisyn schreef op donderdag 15 april 2010 @ 16:54:
[...]

IndexOutOfRangeException != ArgumentOutOfRangeException.

Die laatste toont aan dat een functieargument buiten het bereik valt. In de beschrijving staat ook "Parameter moet positief zijn", wat lijkt te suggereren dat een van de argumenten naar GetPixel() negatief is.
* RobIII even de poep uit de ogen wrijft :X
Inderdaad; maar de strekking is hetzelfde natuurlijk. O-)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Klopt, m'n 2e alinea was ook meer richting de TS ;)

[ Voor 15% gewijzigd door .oisyn op 15-04-2010 17:00 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bedankt iedereen, fout gevonde ^^

de code bij mijn kameraad was fout ;) (konden enkel zijn code testen omdat hij de webcam heeft)
in de eerste blok code stond er bij hem in de 2e kolom telkens centers [0,1]
ipv 0 -> 9
Pagina: 1