Read run-length encoding data from a table
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi,
I have the attached table where the second column (EncodedPixels) contains the run-length encoding of bounding box masks.
I wonder how to transform each row in the column EncodedPixels into double for subsequent manipulation.
Thanks,
Jacopo
댓글 수: 0
답변 (2개)
dpb
2022년 7월 9일
Not sure what the next step(s) are, but to convert each row use something like
data=reshape(str2double(split(tT.EncodedPixels(i)).'),2,[]).';
where i=1:height(test_table)
You can probably avoid the above step by reading the data in in proper format as numeric from the beginning, though; I presume these came from some other input file? Show us the format for it and we can probably read directly into numeric array.
Jan
2022년 7월 10일
편집: Jan
2022년 7월 10일
This is one of the files I would not import with readtable, but manually:
[fid, msg] = fopen(FileName, 'r');
assert(fid > 0, 'Cannot read file: %s', msg);
k = 0;
Header = fgetl(fid);
while ~feof(fid)
S = fgetl(fid);
if ~isempty(S)
k = k + 1;
[File, Value] = strtok(S, ',')
Data(k).File = File;
Num = sscanf(Value(2:end), '%g');
% Decode run-length encoded values:
Data(k).Value = repelem(Num(1:2:end), Num(2:2:end));
% Or maybe:
% ??? Data(k).Value = repelem(Num(2:2:end), Num(1:2:end));
end
end
fclose(fid);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!