Ich verwende als Programmierumgebung Microsoft Visual Studio 6.0 C++. Bisher hab ich erreicht das ein bmp Bild eingelesen werden kann und dieses in Graustufen umgewandelt werden kann. Nun möchte ich ein Histogramm grafisch darstellen. Gibt es irgendwo einen Sourcecode, den man nur einbinden muss?
http://www.gnuplot.info/faq/faq.html Punkt 6.8 Wie es genau über die Pipe abgewickelt wird, weiss ich leider nicht.
Ihr mit eurem GnuPlot immer. ;) Viel schöner, und direkt zum integrieren in die GUI: http://www.mitov.com/html/plotlab.html
> Ich verwende als Programmierumgebung Microsoft Visual Studio 6.0 C++.
Visual C++ 6 ist vollkommen veraltet, nimm lieber eine der modernen
Visual-C++-Versionen (mit der Express-Version gibt es die sogar
kostenlos). Du wirst heutzutage mit der Version 6 einfach keine Freude
mehr haben, weil du alle naselang in irgendwelche Probleme durch die
mangelhafte C++-Umsetzung rennen wirst. Sehr viele, auch sehr
grundlegende und einfache, C++-Programme lassen sich mit VC6 nicht
kompilieren, weil dieser Compiler nicht im geringsten standard-konform
ist.
Tu dir selbst einen Gefallen und gib diesem Antik-Stück seine
wohlverdiente letzte Ruhe.
Kennt von euch jemand "zedGraph" ? Mit dieser Software kann man auch Grafiken plotten. Diese Software wurde in C# geschrieben. Kann man eigentlich die DLL in MFC C++ verwenden?
Was hältst du von sowas ? Hab nur mal eben schnell gesucht: http://www.codeproject.com/KB/miscctrl/pgllib.aspx Visual Studio 2008 Express C++ gibt es kostenlos hier: http://www.microsoft.com/germany/Express/download/default.aspx Ich verwende die Professional Version - habe aber gehört das man unter Umständen bei der Express Version noch das Platform SDK installieren muss. Infos hier: http://blogs.msdn.com/windowssdk/archive/2008/02/22/using-visual-c-2008-express-with-the-windows-sdk-short-version.aspx
> Wenn ich C++ MFC Version downloade und verwende, muss ich da was > bezahlen? Jein. MFC wird für neue Programme nicht mehr empfohlen, es ist einfach viel zu alt. Aber MFC kostet Geld, ja.
Ich hab in mein Visual Studio 6.0 C++ Programm die GUI von der Homepage http://www.mitov.com/html/plotlab.html eingebunden. Ich kann von den Darstellungsarten zwischen Scope und Waterfall wählen. Um nun ein Grauwerte Histogramm grafisch auszugeben, da hab ich noch Probleme. Kann mir dazu jemand helfen?
Beispiel mit Waterfall:
1 | float SampleDataArray[ 255 ]; |
2 | |
3 | for( int i = 0; i < 255; i ++ ) |
4 | SampleDataArray[ i ] = rand()-16000; |
5 | |
6 | Waterfall.Data.AddData( SampleDataArray, 255 ); |
Nun hab ich da folgendes Problem. Ich möchte das nur ein Wert pro x-Position darstellen. Die x-Achse geht von 0 bis 255. Wie kann ich dies mir "plotLab" realisieren?
Für dein histogramm brauchst du doch nur das Scope. Dann einfach ein Array mit 256 Elementen (x-Achse) und die Elemente sind dann die Höhe. dann musst du noch irgendwo auf "bars" bei der Darstellung umstellen. normal sind ja durch interpolation verbundene Linien. Es gibt aber auch so eine Art Säulendiagramm... weiß leider ausm Kopf nicht genau, wie das hieß.
Vielen Dank für die Hilfe. Das wäre super wenn dies so gehen würde. Ich hab bisher alles mögliche durchsucht. Ich weiss nicht wie man die "Bars" bzw. "Säulendiagramm" einstellen kann.
Ich kann´s dir morgen zeitigstens sagen. In meiner Diplomarbeit: http://supachris.homeip.net/Diplomarbeit.pdf auf Seite 61 oder so siehst du, wie das aussieht.
In der Header Datei "CSLScope.h" hab ich etwas entdeckt. Es gibt ein Aufzählungstyp mit dem Namen "CTSLScopeChannelMode". enum CTSLScopeChannelMode { cmLine, cmBar, cmPoint }; Ich weiss allerdings nicht was ich nun genau tun muss, damit ich das Säulenformat nutzen kann.
keule wrote: > In der Header Datei "CSLScope.h" hab ich etwas entdeckt. > Es gibt ein Aufzählungstyp mit dem Namen "CTSLScopeChannelMode". > > enum CTSLScopeChannelMode { cmLine, cmBar, cmPoint }; > > Ich weiss allerdings nicht was ich nun genau tun muss, damit ich das > Säulenformat nutzen kann. Dann lies die Doku.
In der Doku steht auch nicht viel drin. Es sind da keine kleinen Beispiele enthalten.
Doku gibts leider wirklich nicht viel. Ich hab´s über die Drop-Down Box der IntelliSense gefunden. Schließlich wird einem ja von Visual Studio alles angeboten, was man mit den Klassen-Membern machen kann.
Ich hab in der Hilfe was gefunden, ich weiss nicht wie man die Grafik so einstellen kann, das sie so aussieht wie das zweite Bild.
http://sapphiresteel.com/IMG/png/intellisense.png Automatisch Vervollständigung. Somit kannst du dich durch alle Klassen-Member usw hangeln.
So einfach geht das:
1 | m_Scope.Channels[0].ChannelMode = CTSLScopeChannelMode::cmBar; |
Das mit dem Intelliisense funktioniert bei mir nicht. Wieso, das weiss ich auch nicht.
Klar. Hat aber nur sporadisch funktioniert. Und aktivieren muss man es glaub auch irgendwo in den Optionen. Naja, wie fast alles an VC++ 6.0 ein Graus.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.