From 3fe98487460df572911b8875e17eff29a886a98f Mon Sep 17 00:00:00 2001 From: Howcanoe WANG Date: Wed, 25 Jan 2023 14:19:47 +0900 Subject: [PATCH] Add DIY title for visualize --- easyidp/visualize.py | 16 +++++++++++++--- tests/test_visualize.py | 17 ++++++++++------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/easyidp/visualize.py b/easyidp/visualize.py index b1257dc..f44237c 100644 --- a/easyidp/visualize.py +++ b/easyidp/visualize.py @@ -3,6 +3,7 @@ import matplotlib.patches as pts from matplotlib.collections import PatchCollection from tqdm import tqdm +import warnings def _view_poly2mask(poly, mask, pix_all, pix_in): @@ -205,7 +206,7 @@ def draw_polygon_on_img(img_name, img_path, poly_coord, corrected_poly_coord=Non del fig, ax, img_array -def draw_backward_one_roi(proj, result_dict, buffer=40, save_as=None, show=False, title=None, color='red', alpha=0.5, dpi=72): +def draw_backward_one_roi(proj, result_dict, buffer=40, title=None, save_as=None, show=False, color='red', alpha=0.5, dpi=72): """Plot one ROI results on all available images. Parameters @@ -217,6 +218,8 @@ def draw_backward_one_roi(proj, result_dict, buffer=40, save_as=None, show=False | e.g. ``{"IMG_2345": np.array([...]), "IMG_2346": np.array([])}`` buffer : int, optional The pixel buffer number around the backward ROI results, by default 40 + title : str, optional + The image title displayed on the top, by default None -> ``Projection on [img_name]`` save_as : str, optional file path to save the output figure, by default None show : bool, optional @@ -256,6 +259,13 @@ def draw_backward_one_roi(proj, result_dict, buffer=40, save_as=None, show=False :alt: draw_backward_one_roi.png' """ + title_list = ['ROI Positions on Original Images', 'Enlarge Detail View'] + if title is not None: + if isinstance(title, list) and len(title) == 2: + title_list = title + else: + warnings.warn(f"Expected title like ['title1', 'title2'], not given '{title}', using default title instead") + img_num = len(result_dict) + 1 grid_w = np.ceil(np.sqrt(img_num)).astype(int) @@ -316,13 +326,13 @@ def draw_backward_one_roi(proj, result_dict, buffer=40, save_as=None, show=False # add subfigure title plt.text(.25, 0.99, - 'ROI Positions on Original Images', + title_list[0], transform=fig.transFigure, horizontalalignment='center', verticalalignment='top', size='xx-large') plt.text(.75, 0.99, - 'Enlarge Detail View', + title_list[1], transform=fig.transFigure, horizontalalignment='center', verticalalignment='top', diff --git a/tests/test_visualize.py b/tests/test_visualize.py index 0beba42..c151e61 100644 --- a/tests/test_visualize.py +++ b/tests/test_visualize.py @@ -64,7 +64,7 @@ def test_visualize_one_roi_on_img_p4d(): save_as=test_data.vis.out / "p4d_show_roi_on_img_diy.png") out = p4d.show_roi_on_img( - img_dict_p4d, 'N1W2', title="AAAA", color='green', alpha=0.5, show=False, + img_dict_p4d, 'N1W2', show=False, title=["AAAA", "BBBB"], color='green', alpha=0.5, show=False, save_as=test_data.vis.out / "p4d_show_one_roi_all.png") @@ -85,7 +85,8 @@ def test_visualize_one_roi_on_img_ms(): save_as=test_data.vis.out / "ms_show_roi_on_img_diy.png") out = ms.show_roi_on_img( - img_dict_ms, 'N1W2', color='green', alpha=0.5, show=False, + img_dict_ms, 'N1W2', color='green', alpha=0.5, + show=False, title=["AAAA", "BBBB"], save_as=test_data.vis.out / "ms_show_one_roi_all.png") @@ -99,8 +100,10 @@ def test_draw_backward_one_roi(): img_dict_ms = roi.back2raw(ms) - idp.visualize.draw_backward_one_roi( - ms, img_dict_ms['N1W1'], buffer=40, - save_as=test_data.vis.out / "draw_backward_one_roi.png", - color='blue', show=False - ) + with pytest.warns(UserWarning, match=re.escape( + "Expected title like ['title1', 'title2'], not given 'sdedf', using default title instead")): + idp.visualize.draw_backward_one_roi( + ms, img_dict_ms['N1W1'], buffer=40, title='sdedf', + save_as=test_data.vis.out / "draw_backward_one_roi.png", + color='blue', show=False + )