Lesen Sie .yml-Dateien in Matlab
Ich möchte .yml-Dateien in Matlab lesen. Diese Dateien enthalten die Koordinaten x und y der wichtigsten Punkte auf einem Gesichtsbild. Ich habe nach verschiedenen Werkzeugen gesucht, aber ich scheine keine Antworten zu finden.
Meine .yml-Dateien sehen so aus
<code>YAML:1.0 Image file: "00032009.jpg" Contours count: 8 Contours: - Name: FO Count: 41 Closed: 0 Points: - x: 682.5947265625000000 y: 743.1998901367187500 - x: 685.9638061523437500 y: 771.3800659179687500 </code>
......
und so weiter
Hinweis 00032009.jpg ist ein Bild eines Gesichts. X und y sind Koordinaten eines Punktes auf einem Gesicht. Bsp .: der rechte Augenwinkel usw
Könnten Sie bitte einen Weg aufzeigen, um die Datei zu lesen und dann die Punkte auf dem Gesichtsbild anzuzeigen?
Bearbeiten 1: Hier ist der Fehler, den ich bekomme
<code>Error: File: ReadYamlRaw.m Line: 14 Column: 11 Expression or statement is incorrect--possibly unbalanced (, {, or [. Error in ==> ReadYaml at 38 ry = ReadYamlRaw(filename, 0, nosuchfileaction); </code>
Was seltsam ist, ist Zeile 14 in ReadYamlRaw.m
<code>[pth,~,~]= fileparts(mfilename('fullpath')); Parse error at ','(second one) and ']' usage appears to be invalid matlab syntax. </code>
Wozu dient ~ dort und warum gibt es einen Fehler?
Edit2: Ich habe das ~ in der obigen Zeile durch Dummy-Variablen ersetzt, dann erhalte ich den Fehler O_O
<code> Error using ==> ReadYamlRaw>scan at 81 Unknown data type: logical Error in ==> ReadYamlRaw>scan_map at 138 result.(ich) = scan(r.get(java.lang.String(ich))); Error in ==> ReadYamlRaw>scan at 79 result = scan_map(r); Error in ==> ReadYamlRaw>scan_list at 116 result{ii} = scan(i); Error in ==> ReadYamlRaw>scan at 77 result = scan_list(r); Error in ==> ReadYamlRaw>scan_map at 138 result.(ich) = scan(r.get(java.lang.String(ich))); Error in ==> ReadYamlRaw>scan at 79 result = scan_map(r); Error in ==> ReadYamlRaw>load_yaml at 48 result = scan(yaml.load(fileread([filename, fileext]))); Error in ==> ReadYamlRaw at 19 result = load_yaml(filename, nosuchfileaction); Error in ==> ReadYaml at 38 ry = ReadYamlRaw(filename, 0, nosuchfileaction); </code>
Ich habe es auch mit einer anderen yml-Datei versucht, die so aussieht
<code>%YAML:1.0 RE-C: x: 919 y: 580 LE-C: x: 1209 y: 597 N-C: x: 1063 y: 698 FO-B: x: 1045 y: 1114 REL-O: x: 852 y: 597 REL-I: x: 986 y: 600 REL-T: x: 918 y: 564 </code>
Und ich erhalte die folgenden Fehler
<code>Java exception occurred: while scanning a directive in "<string>", line 1, column 1: %YAML:1.0 ^ expected alphabetic or numeric character, but found :(58) in "<string>", line 1, column 6: %YAML:1.0 ^ at org.yaml.snakeyaml.scanner.ScannerImpl.scanDirectiveName(ScannerImpl.java:1028) at org.yaml.snakeyaml.scanner.ScannerImpl.scanDirective(ScannerImpl.java:990) at org.yaml.snakeyaml.scanner.ScannerImpl.fetchDirective(ScannerImpl.java:534) at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:251) at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:179) at org.yaml.snakeyaml.parser.ParserImpl$ParseImplicitDocumentStart.produce(ParserImpl.java:198) at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161) at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146) at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:121) at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480) at org.yaml.snakeyaml.Yaml.load(Yaml.java:399) Error in ==> ReadYamlRaw>load_yaml at 48 result = scan(yaml.load(fileread([filename, fileext]))); Error in ==> ReadYamlRaw at 19 result = load_yaml(filename, nosuchfileaction); Error in ==> ReadYaml at 38 ry = ReadYamlRaw(filename, 0, nosuchfileaction); </code>
Vielleicht kann jemand etwas daraus machen oder Sie könnten auf andere Funktionen hinweisen, die funktionieren würden? Ich suchte, fand aber keine außer dieser.