mirror of
https://github.com/open-mmlab/mmselfsup.git
synced 2025-06-03 14:59:38 +08:00
37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
import io
|
|
from PIL import Image
|
|
try:
|
|
import mc
|
|
except ImportError as E:
|
|
pass
|
|
|
|
|
|
def pil_loader(img_str):
|
|
buff = io.BytesIO(img_str)
|
|
return Image.open(buff)
|
|
|
|
|
|
class McLoader(object):
|
|
|
|
def __init__(self, mclient_path):
|
|
assert mclient_path is not None, \
|
|
"Please specify 'data_mclient_path' in the config."
|
|
self.mclient_path = mclient_path
|
|
server_list_config_file = "{}/server_list.conf".format(
|
|
self.mclient_path)
|
|
client_config_file = "{}/client.conf".format(self.mclient_path)
|
|
self.mclient = mc.MemcachedClient.GetInstance(server_list_config_file,
|
|
client_config_file)
|
|
|
|
def __call__(self, fn):
|
|
try:
|
|
img_value = mc.pyvector()
|
|
self.mclient.Get(fn, img_value)
|
|
img_value_str = mc.ConvertBuffer(img_value)
|
|
img = pil_loader(img_value_str)
|
|
except:
|
|
print('Read image failed ({})'.format(fn))
|
|
return None
|
|
else:
|
|
return img
|