Zeichen in einer Txt richtig zusammenfügen - Probleme?
-
Hallo allerseits,
ich habe im Laufe des Tages ein weiteres Problem festgestellt. Ich erkläre es mal anhand meines Beispiels. Es geht um Bildverarbeitung unter Verwendung der Bibliothek von OpenCV.
In einem ersten Schritt ermittel ich markante Punkte und einige Merkmale. Das Ergebnis sieht so aus:1.0
11
456 483 0.00416233 0 0.00416233
361 373 0.00416233 0 0.00416233
315 317 0.00416233 0 0.00416233
511 483 0.00416233 0 0.00416233
265 447 0.00416233 0 0.00416233
456.787 483.656 0.00208121 0 0.00208121
458.201 487.899 0.00208121 0 0.00208121
233.343 376.177 0.00208121 0 0.00208121
407.992 487.991 0.00104062 0 0.00104062
457.991 487.991 0.00104062 0 0.00104062
214.954 175.357 0.000520321 0 0.000520321In einem weiteren Schritt werden weitere Merkmale ermittelt, die in einem Array gespeichert werden. Lässt man also die Variable des in einer Txt speichern, dann sieht das Ergebnis so aus:
[137, 29, 127, 65, 178, 226, 251, 50, 124, 200, 126, 224, 185, 31, 181, 121, 38, 115, 23, 218, 177, 184, 37, 110, 71, 171, 50, 192, 231, 193, 103, 249;
138, 146, 22, 188, 115, 164, 56, 115, 189, 75, 112, 245, 172, 175, 32, 216, 199, 59, 135, 4, 55, 141, 2, 215, 134, 247, 58, 202, 154, 4, 43, 155;
58, 152, 51, 120, 49, 205, 89, 67, 237, 29, 112, 1, 46, 159, 36, 16, 172, 59, 151, 0, 138, 47, 50, 245, 211, 217, 18, 107, 82, 0, 103, 203;
175, 154, 103, 91, 215, 191, 224, 215, 87, 7, 112, 86, 42, 72, 188, 140, 121, 170, 130, 28, 159, 190, 116, 247, 7, 94, 148, 66, 211, 92, 248, 236;
127, 48, 249, 114, 171, 124, 89, 16, 171, 255, 181, 61, 26, 253, 207, 190, 167, 213, 253, 22, 141, 71, 186, 224, 219, 217, 101, 191, 235, 247, 14, 119;
138, 212, 31, 248, 224, 198, 61, 119, 189, 91, 118, 53, 157, 191, 32, 81, 230, 49, 151, 164, 113, 141, 50, 194, 243, 251, 126, 206, 8, 80, 167, 243;
201, 29, 59, 191, 52, 140, 121, 51, 189, 64, 86, 69, 191, 159, 33, 121, 198, 43, 29, 29, 243, 28, 114, 255, 199, 249, 186, 136, 30, 128, 3, 123;
153, 64, 108, 37, 36, 15, 237, 20, 116, 74, 118, 71, 179, 8, 155, 97, 122, 136, 30, 111, 237, 180, 69, 13, 228, 233, 176, 128, 109, 152, 88, 152;
193, 205, 27, 190, 180, 172, 110, 167, 190, 2, 72, 81, 183, 211, 32, 113, 243, 107, 29, 67, 122, 12, 154, 63, 165, 246, 42, 72, 56, 17, 129, 10;
194, 132, 59, 248, 168, 204, 29, 39, 189, 19, 64, 16, 188, 151, 32, 121, 226, 59, 29, 1, 114, 12, 51, 215, 193, 176, 90, 74, 16, 64, 165, 106;
187, 105, 227, 76, 68, 82, 239, 230, 209, 206, 246, 2, 49, 252, 181, 167, 120, 236, 20, 235, 233, 243, 164, 136, 51, 104, 231, 128, 103, 188, 118, 236]Beides werden aktuell in Form von txt gespeichert.
Nun möchte ich aber die zweite txt in die erste an den richtigen Stellen platzieren. Dabei müssen [ zu Beginn und zuallerletzt und ; in jeder Zeile elemniert werden.
Noch besser wäre es, dass ich die zweite txt gar nicht erst erstelle.Das Ergebnis soll die Form haben:
1
nb(Zahl)x1 y1 a1 b1 c1 d1 d2 d3 ...
%x2 y2 a2 b2 c2 d1 d2 d3 ...
%....
%....also für die oberen Beispiele sehen die ersten drei Zeilen folgendermaßen aus:
1
11
456 483 0.00416233 0 0.00416233 137, 29, 127, 65, 178, 226, 251, 50, 124, 200, 126, 224, 185, 31, 181, 121, 38, 115, 23, 218, 177, 184, 37, 110, 71, 171, 50, 192, 231, 193, 103, 249
...
...
usw.Hat jemand einen Hinweis, wie ich das realisieren kann?
Ich bin gerade etwas planlos, da ich "Text2" an "Text1" ab der dritten Zeile anhängen muss und dann müssen eben noch [ ; gelöscht werdenViele Grüße
-
Hallo,
ich habe das jetzt Problem gelöst.
Da ich die OpenCV Klasse Mat benutze, erzeuge ich mir eine Hilfsvariable und benutze die Funktionen row, line und copyTo. In dieser speicher ich in einer For-Schleife die jeweilige passende Zeile.
double a,b,c; Mat descriptorsline; for( unsigned int ii = 0; ii < key_points.size( ); ii++ ) { b=0; a=1/((key_points[ii].size/2)*(key_points[ii].size/2)); c=a; [b]descriptors.row(ii).copyTo(descriptorsline);[/b] outputFile << key_points[ii].pt.x << " " << key_points[ii].pt.y <<" "<< a <<" "<< b <<" "<< c <<" "<<descriptorsline<<std::endl; } outputFile.close( );Das Ergebnis sieht dann für eine Zeile so aus:
456 483 0.00416233 0 0.00416233 [137, 29, 127, 65, 178, 226, 251, 50, 124, 200, 126, 224, 185, 31, 181, 121, 38, 115, 23, 218, 177, 184, 37, 110, 71, 171, 50, 192, 231, 193, 103, 249]
Der Vorteil zum oberen Beitrag ist jetzt, dass das ";" verschwunden ist.
Jetzt müsste ich aber noch die beiden Eckigen Klammern in jeder Zeile entfernen?
Hat jemand eine Ahnung, wie das möglich ist.Und gibt es in C++ einen Befehl um alle Txt-Dateien eines Ordners zu löschen?#
viele Grüße