PeterPan200 hat geschrieben:
Code: Alles auswählen
QImage base;
for ( int y=0; y<base.height(); y++ )
{
for ( int x=0; x<base.width(); x++ )
{
.
und wenn Du genau hier, wo Du sowieso über sämtliche Punkte iterierst, die entspr. Abfrage machst.. so wie christian81 das angeregt hat.
QImage::pixel ( int x, int y ) gibt Dir einen RGB-Wert zurück, den Du nur noch daraufhin überprüfen mußt, ob G > Schwellenwert und R+B < Schwellenwert2 ist.
Evtl. noch x und y in einem Point-Array merken zur späteren Auswertung.
z.B.:
Code: Alles auswählen
if (((qGreen(QImage::pixel ( x, y )) > 250) /* Schwellwert für Grün */
&&(qRed(QImage::pixel ( x, y )) < 50) /* Schwellwert für Rot */
&&(qBlue(QImage::pixel ( x, y )) < 50) /* Schwellwert für Blau */
)
{
points[i].x=x; // i ist irgenwo vorher genullt
points[i].y=y;// points ist ein QArray von QPoints
i++;
}
oder so ähnlich, hab die syntax jetzt nicht genau im Kopf.
PeterPan200 hat geschrieben:
Mein Ansatz war, eine for Schleife zu erstellen:
Code: Alles auswählen
for (int count=0; count < m_gesamtZeilen; count++)
{
// ?????????????????????
}
Ist mein Ansatz richtig?? Wenn ja, wir selektiere ich denn die Pixel pro Zeile aus??
Vielen Dank!
Wie erwähnt, ist die zweite Schleife eher sinnfrei, da Du dort nur noch über die Gesamtzahl der Pixel iterierst und x und y wieder herausrechnen müsstest, um das konkrete Pixel abzufragen. (Auch ne Möglichkeit seinen 4Ghz Quadcore zu beschäftigen). Was Du machen kannst, ist über das weiter oben erzeugte Punktarray zu laufen und alle dort hinterlegten Punkte blasslia setzen, oder was auch immer.
HTH