Seite 1 von 1

Bild anzeigen und Markierung drüberlegen

Verfasst: 22. November 2010 04:23
von antimatter
Hallo,
auf meiner Oberfläche habe ich derzeit eine ScrollArea mit einem Label als Child, welches eine Pixmap zeigt. Letztere ist ein hochauflösender Scan eines Dias in 100% Größe, daher ist die ScrollArea Pflicht.

Auf diesem Bild wird via Bildverarbeitung ein bestimmtes Feature gesucht und das Ergebnis (die gefundene Position) soll dann in Form eines kleinen (Faden)Kreuzes angezeigt werden.

Wie kann ich so etwas bewerkstelligen?

Viele Grüße
a.


PS: Ich arbeite zwar mit PyQt, aber da ist ja nur die Syntax etwas anders.

Verfasst: 22. November 2010 09:05
von upsala
QWidget nehmen und im paintEvent das Image und das Fadenkreuz selber zeichnen

Verfasst: 22. November 2010 10:15
von padreigh
das Dia liegt vermutlich as QImage vor und du machst vermutlich irgendwo sowas hier:

Code: Alles auswählen

QLabel * k = new QLabel();
QImage * diaimg = new QImage("pfadzudia");
...
k->setPixmap(QPixmap::fromImage(diaimg); 
dann könnntest du das gefundene feature zB so draufzaubern:

Code: Alles auswählen

public slots:
void maleKreuz(QRect r /* border ums feature*/)
{
   // kopie vom bild
   QImage m(*diaimg);

   // kreuz
   QLineF hline(0, (r.y()+r.height())/2, 
                    r.width(), (r.y()+r.height())/2);
   QLineF vline((r.x()+r.width())/2, 0,
                      (r.x()+r.width())/2, r.height());
   // male auf bild
   QPainter painter(&m);
   painter.drawLine(hline);
   painter.drawLine(vline);
   painter.end();
   // setze dargestelltes Bild neu:
   label->setPixmap(QPixmap::fromImage(m));
}
(code uncompiliert .. als Idee)