ler arquivos .yml no matlab
Eu gostaria de ler arquivos .yml no Matlab. Esses arquivos contêm coordenadas xey de pontos-chave em uma imagem de rosto. Procurei ferramentas diferentes, mas parece que não encontro nenhuma resposta.
Meus arquivos .yml se parecem com isso
<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>
......
e assim por diante
Nota 00032009.jpg é uma imagem de um rosto x e y são coordenadas de um ponto em um rosto Por exemplo: o canto direito de um olho, etc.
Você poderia, por favor, indicar uma maneira de ler o arquivo e exibir os pontos na imagem do rosto?
Editar 1: Aqui está o erro que recebo
<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>
O que é estranho é a linha 14 em ReadYamlRaw.m
<code>[pth,~,~]= fileparts(mfilename('fullpath')); Parse error at ','(second one) and ']' usage appears to be invalid matlab syntax. </code>
Então, qual é o uso de ~ lá e por que há um erro?
Edit2: Eu substitui o ~ na linha acima com variáveis dummy, então eu recebo esses erros 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>
Eu também tentei com um arquivo yml diferente que se parece com isso
<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>
E recebo os seguintes erros
<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>
Talvez alguém possa fazer algo a partir disso ou você poderia apontar outro conjunto de funções que funcionariam? Eu procurei, mas não encontrei nenhum, exceto este.