Mercurial > repos > imgteam > landmark_registration_ls
changeset 1:69db8c7d4244 draft default tip
"planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tools/landmark_registration_ls/ commit 927b78d47c31714776ccdf3d16f26c3779298abb"
author | imgteam |
---|---|
date | Sun, 20 Feb 2022 15:47:16 +0000 |
parents | 2f36165c49fb |
children | |
files | landmark_registration_ls.py landmark_registration_ls.xml |
diffstat | 2 files changed, 27 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/landmark_registration_ls.py Tue Dec 29 12:10:53 2020 +0000 +++ b/landmark_registration_ls.py Sun Feb 20 15:47:16 2022 +0000 @@ -1,43 +1,41 @@ -from scipy.linalg import lstsq -import pandas as pd -import numpy as np import argparse +import numpy as np +import pandas as pd +from scipy.linalg import lstsq + + def landmark_registration_ls(pts_f1, pts_f2, out_f, delimiter="\t"): - + points1 = pd.read_csv(pts_f1, delimiter=delimiter) points2 = pd.read_csv(pts_f2, delimiter=delimiter) - src = np.concatenate([np.array(points1['x']).reshape([-1,1]), - np.array(points1['y']).reshape([-1,1])], + src = np.concatenate([np.array(points1['x']).reshape([-1, 1]), + np.array(points1['y']).reshape([-1, 1])], axis=-1) - dst = np.concatenate([np.array(points2['x']).reshape([-1,1]), - np.array(points2['y']).reshape([-1,1])], + dst = np.concatenate([np.array(points2['x']).reshape([-1, 1]), + np.array(points2['y']).reshape([-1, 1])], axis=-1) - A = np.zeros((src.size,6)) - A[0:src.shape[0],[0,1]] = src - A[0:src.shape[0],2] = 1 - A[src.shape[0]:,[3,4]] = src - A[src.shape[0]:,5] = 1 + A = np.zeros((src.size, 6)) + A[0:src.shape[0], [0, 1]] = src + A[0:src.shape[0], 2] = 1 + A[src.shape[0]:, [3, 4]] = src + A[src.shape[0]:, 5] = 1 b = dst.T.flatten().astype('float64') - x = lstsq(A,b) - + x = lstsq(A, b) + tmat = np.eye(3) - tmat[0,:] = x[0].take([0,1,2]) - tmat[1,:] = x[0].take([3,4,5]) + tmat[0, :] = x[0].take([0, 1, 2]) + tmat[1, :] = x[0].take([3, 4, 5]) pd.DataFrame(tmat).to_csv(out_f, header=None, index=False, sep="\t") if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Estimate transformation from points using least squares") - parser.add_argument("fn_pts1", help="File name src points") parser.add_argument("fn_pts2", help="File name dst points") parser.add_argument("fn_tmat", help="File name transformation matrix") args = parser.parse_args() - + landmark_registration_ls(args.fn_pts1, args.fn_pts2, args.fn_tmat) - -
--- a/landmark_registration_ls.xml Tue Dec 29 12:10:53 2020 +0000 +++ b/landmark_registration_ls.xml Sun Feb 20 15:47:16 2022 +0000 @@ -1,11 +1,12 @@ -<tool id="ip_landmark_registration_ls" name="Landmark Registration" version="0.0.1"> +<tool id="ip_landmark_registration_ls" name="Landmark Registration" version="0.0.2" profile="20.05"> <description>using least squares</description> <requirements> <requirement type="package" version="1.2.1">scipy</requirement> <requirement type="package" version="0.23.4">pandas</requirement> <requirement type="package" version="1.15.2">numpy</requirement> </requirements> - <command><![CDATA[ + <command detect_errors="aggressive"> + <![CDATA[ python '$__tool_directory__/landmark_registration_ls.py' '$fn_pts1' '$fn_pts2' @@ -29,5 +30,9 @@ **What it does** This tool estimates the (affine) transformation matrix using least squares given two sets of 2d coordinates of landmarks. + + Note: This tool is deprecated and may not be supported in future. Please use the tool "Landmark Registration" instead. </help> + <citations> + </citations> </tool>