Bild anzeigen und Markierung drüberlegen

Alles rund um die Programmierung mit Qt
Antworten
antimatter
Beiträge: 5
Registriert: 20. November 2010 18:07

Bild anzeigen und Markierung drüberlegen

Beitrag 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.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

QWidget nehmen und im paintEvent das Image und das Fadenkreuz selber zeichnen
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Beitrag 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)
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
Antworten