[c++/cli] Rysowanie histogramu Pytania

0
 Graphics^ g1=this->panel3->CreateGraphics();
			 Pen^ pioro1 = gcnew Pen(System::Drawing::Color::Black);
			 pioro1->Width=1;
			 this->histogram = gcnew array<Byte>(256);
			 Byte kol;
			 for ( int counter = 0; counter < this->koloryRGB->Length; counter +=3 )
			{
				 kol = (this->koloryRGB[counter] + this->koloryRGB[counter+1] + this->koloryRGB[counter+2])/3;
				 histogram[kol]++;
			}

			 for (int i=0; i<256; i++)
			 {
				 if (histogram[i]!=0)
				 g1->DrawLine(pioro1,i,300,i,histogram[i]);
			 
			 }
			 

Witam, mam taki kod który powinien rysować histogram bitmapy. w tablicy KoloryRGB są zapisane wartości poszczególnych pikseli w formacie (BGR) (BGR)....(BGR)

Do histogramu dzielę sumę wartości R, G, B każdego piksela przez 3 i zwiększam licznik o 1 w tablicy w histogram (w polu które odpowiada pikselowi (0-255))

czy takie postępowanie jest poprawne?

Druga sprawa jak przeskalować wykres do wysokości np 200px?

Proszę o pomoc.

Pozdrawiam serdecznie

0
  1. poprawne? zalezy co chcesz osiagnac. jesli chcesz osiagnac histogram 'jasnosci' - to tak.
  2. mowiac łopatologicznie, nie rysuj na formatce, tylko na utworzonej przez siebie bitmapie, rysuj na niej normalnie, a po skonczeniu kaz 'przemalowac' ja na formatke, na zadane x,y i z zadaną wielkością wiekszą niż oryginalna. metody od tego znajdziesz łatwo

1 użytkowników online, w tym zalogowanych: 0, gości: 1