Skip to content

Instantly share code, notes, and snippets.

@taku-y
Created February 16, 2020 02:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save taku-y/abcc919c07631622a9e4549a42edfc07 to your computer and use it in GitHub Desktop.
Save taku-y/abcc919c07631622a9e4549a42edfc07 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import traitlets\n",
"import matplotlib.pyplot as plt\n",
"from IPython.display import display\n",
"import PIL.Image\n",
"import gym\n",
"import gym_minigrid\n",
"import ipywidgets as widgets\n",
"from ipywidgets import interact, interactive\n",
"from traitlets.config.configurable import SingletonConfigurable"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"env = gym.make(\"MiniGrid-Empty-8x8-v0\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"env.reset()\n",
"img = env.render(mode=\"\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f2ac710b0b8>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(img)"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [],
"source": [
"image = widgets.Image(format=\"png\", height=256, width=256)\n",
"\n",
"def rgb8_to_png(value):\n",
" return bytes(cv2.imencode('.png', value)[1])"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
"class Test(SingletonConfigurable):\n",
" value = traitlets.Any()\n",
"\n",
" def __init__(self, *args, **kwargs):\n",
" super(Test, self).__init__(*args, **kwargs)\n",
" self.value = img"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [],
"source": [
"test = Test()\n",
"link = traitlets.dlink((test, \"value\"), (image, \"value\"), transform=rgb8_to_png)"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "8a7ac7f2fa4646ce9793f3b3b706a456",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Image(value=b\"\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x00\\x08\\x02\\x00\\x00\\x00\\xd3\\x10?…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(image)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment