czytaj pliki .yml w matlab
Chciałbym czytać pliki .yml w Matlab. Pliki te zawierają współrzędne xiy kluczowych punktów obrazu twarzy. Szukałem różnych narzędzi, ale nie znajduję żadnych odpowiedzi.
Moje pliki .yml wyglądają tak
<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>
......
i tak dalej
Uwaga 00032009.jpg to obraz twarzy x i y to współrzędne punktu na twarzy Np .: prawy róg oka itp.
Czy mógłbyś wskazać sposób odczytania pliku, a następnie wyświetlić punkty na obrazie twarzy?
Edytuj 1: Oto błąd, który otrzymuję
<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>
Dziwna jest linia 14 w ReadYamlRaw.m
<code>[pth,~,~]= fileparts(mfilename('fullpath')); Parse error at ','(second one) and ']' usage appears to be invalid matlab syntax. </code>
Jaki jest więc użytek ~ i dlaczego jest błąd?
Edit2: Zastąpiłem ~ w powyższym wierszu zmiennymi fikcyjnymi, a następnie otrzymałem te błędy 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>
Próbowałem też z innym plikiem yml, który wygląda tak
<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>
I dostaję następujące błędy
<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>
Może ktoś może coś z tego zrobić lub wskazać inny zestaw funkcji, który zadziała? Szukałem, ale nie znalazłem żadnego oprócz tego.