0001 classdef BCMapper
0002
0003
0004 properties
0005 dataMap
0006
0007 end
0008
0009 methods
0010
0011 function mapper = BCMapper(dataMap)
0012 if (nargin == 0)
0013 mapper.dataMap = [];
0014 else
0015 mapper.dataMap = dataMap;
0016 end
0017 end
0018
0019
0020 function im = read(mapper, dataset, type, frame)
0021 imPath = mapper.getPath(dataset, type, frame);
0022 im = imread(imPath);
0023 if ndims(im) == 3
0024 im = rgb2gray(im);
0025 end
0026 end
0027
0028
0029 function write(mapper, im, dataset, type, frame)
0030 imPath = mapper.getPath(dataset, type, frame);
0031 if (exist(strcat(dataset,'/',type),'dir')~=7)
0032 mkdir(strcat(dataset,'/',type));
0033 end
0034 imwrite(im, imPath);
0035 end
0036
0037
0038 function imPath = getPath(mapper, dataset, type, frame)
0039
0040 if isnumeric(dataset)
0041 dataname = map2str(mapper, dataset);
0042 else
0043 dataname = dataset;
0044 end
0045 extension = strcat('.', lower(type), '.png');
0046 imName = mapper.getname(dataname,frame, extension);
0047 extFolder = mapper.getExtensionFolder(extension);
0048 imPath = strcat(dataname,'/',extFolder,'/',imName);
0049 end
0050
0051
0052 function dataname = map2str(mapper, dataset)
0053 dataname = mapper.dataMap(dataset).Name;
0054 end
0055 end
0056
0057 methods (Static)
0058
0059 function name = getname(dataset, frame, extension)
0060 if frame < 10
0061 name = strcat(dataset,'00',num2str(frame), extension);
0062 elseif frame < 100
0063 name = strcat(dataset,'0',num2str(frame), extension);
0064 else
0065 name = strcat(dataset, num2str(frame), extension);
0066 end
0067 end
0068
0069
0070 function extFolder = getExtensionFolder(extension)
0071 extFolder = upper(extension(2:strfind(extension(2:end),'.')));
0072 end
0073
0074
0075 end
0076
0077
0078 end