Code indexing in gitaly is broken and leads to code not being visible to the user. We work on the issue with highest priority.

Skip to content
Snippets Groups Projects
Commit 8d060313 authored by augustin_s's avatar augustin_s :snake:
Browse files

added cli commands to show and save an image

parent 3431a260
No related branches found
No related tags found
No related merge requests found
...@@ -2,12 +2,14 @@ ...@@ -2,12 +2,14 @@
import argparse import argparse
from time import sleep from time import sleep
import numpy as np
from matplotlib import pyplot as plt
from cameras.cameraclient import CameraClient from cameras.cameraclient import CameraClient
def main(): def main():
commands = ["restart", "roi", "status", "test"] commands = ["restart", "roi", "status", "test", "show", "save"]
commands.sort() commands.sort()
printable_commands = ", ".join(commands) printable_commands = ", ".join(commands)
...@@ -20,6 +22,8 @@ def main(): ...@@ -20,6 +22,8 @@ def main():
subparser_roi = subparsers.add_parser("roi", description="Set ROI") subparser_roi = subparsers.add_parser("roi", description="Set ROI")
subparser_status = subparsers.add_parser("status", description="Print status") subparser_status = subparsers.add_parser("status", description="Print status")
subparser_test = subparsers.add_parser("test", description="Test setting ROIs") subparser_test = subparsers.add_parser("test", description="Test setting ROIs")
subparser_show = subparsers.add_parser("show", description="Show current image")
subparser_save = subparsers.add_parser("save", description="Save current image")
for sp in subparsers.choices.values(): for sp in subparsers.choices.values():
sp.add_argument("-v", "--verbose", help="verbose output", action="store_true") sp.add_argument("-v", "--verbose", help="verbose output", action="store_true")
...@@ -31,6 +35,8 @@ def main(): ...@@ -31,6 +35,8 @@ def main():
subparser_roi.add_argument("ymin", type=int, help="y min") subparser_roi.add_argument("ymin", type=int, help="y min")
subparser_roi.add_argument("ymax", type=int, help="y max") subparser_roi.add_argument("ymax", type=int, help="y max")
subparser_save.add_argument("filename", help="Output filename")
clargs = parser.parse_args() clargs = parser.parse_args()
command = clargs.command command = clargs.command
if command is None: if command is None:
...@@ -52,6 +58,10 @@ def main(): ...@@ -52,6 +58,10 @@ def main():
do_test(camera, clargs) do_test(camera, clargs)
elif command == "status": elif command == "status":
do_status(camera, clargs) do_status(camera, clargs)
elif command == "show":
do_show(camera, clargs)
elif command == "save":
do_save(camera, clargs)
else: else:
print(f"nothing assigned to command: {command}") print(f"nothing assigned to command: {command}")
parser.print_help() parser.print_help()
...@@ -81,6 +91,53 @@ def do_test(camera, _clargs): ...@@ -81,6 +91,53 @@ def do_test(camera, _clargs):
camera.set_roi(i, 1500, i, 1900, debug=True) camera.set_roi(i, 1500, i, 1900, debug=True)
def do_show(camera, _clargs):
img = camera.get()
proj_x = img.sum(axis=1)
proj_y = img.sum(axis=0)
fig = plt.figure()
# ax_px = fig.add_subplot(222)
# ax_py = fig.add_subplot(223)
# ax_img = fig.add_subplot(221, sharex = ax_px, sharey = ax_py)
left, width = bottom, height = 0.1, 0.65
spacing = 0.005
rect_img = [left, bottom, width, height]
rect_px = [left, bottom + height + spacing, width, 0.2]
rect_py = [left + width + spacing, bottom, 0.2, height]
ax_img = plt.axes(rect_img)
ax_px = plt.axes(rect_px)
ax_py = plt.axes(rect_py)
ax_img.tick_params(direction='in', top=True, right=True)
ax_px.tick_params(direction='in', labelbottom=False)
ax_py.tick_params(direction='in', labelleft=False)
ax_img.imshow(img.T, origin="lower", interpolation="none")
ax_px.plot(proj_x)
ax_py.plot(proj_y, range(len(proj_y)))
# aspx = np.diff(ax_px.get_xlim())[0] / np.diff(ax_px.get_ylim())[0]
# ax_px.set_aspect(aspx)
# aspy = np.diff(ax_py.get_xlim())[0] / np.diff(ax_py.get_ylim())[0]
# ax_py.set_aspect(aspy)
plt.show()
def do_save(camera, clargs):
ext = ".npy"
filename = clargs.filename
filename = filename if filename.endswith(ext) else filename + ext
img = camera.get()
img.dump(filename)
...@@ -92,7 +149,7 @@ if __name__ == "__main__": ...@@ -92,7 +149,7 @@ if __name__ == "__main__":
#Aborted (core dumped) #Aborted (core dumped)
# "solved" by # "solved" by
sleep(0.0001) sleep(0.001)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment