Previous changeset 4:14f9986800fa (2023-11-13) |
Commit message:
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/spot_detection_2d/ commit f1b9207ec23c0af1681c929281bcbf1d0638368e |
modified:
spot_detection_2d.py spot_detection_2d.xml |
added:
creators.xml test-data/input1.tif test-data/input2.tif test-data/output1.tsv test-data/output2.tsv |
removed:
test-data/spots_detected.tsv test-data/test_img1.tif |
b |
diff -r 14f9986800fa -r e8c9e104e109 creators.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/creators.xml Wed Sep 25 08:19:30 2024 +0000 |
b |
@@ -0,0 +1,28 @@ +<macros> + + <xml name="creators/bmcv"> + <organization name="Biomedical Computer Vision Group, Heidelberg Universtiy" alternateName="BMCV" url="http://www.bioquant.uni-heidelberg.de/research/groups/biomedical_computer_vision.html" /> + <yield /> + </xml> + + <xml name="creators/rmassei"> + <person givenName="Riccardo" familyName="Massei"/> + <yield/> + </xml> + + <xml name="creators/alliecreason"> + <person givenName="Allison" familyName="Creason"/> + <yield/> + </xml> + + <xml name="creators/bugraoezdemir"> + <person givenName="Bugra" familyName="Oezdemir"/> + <yield/> + </xml> + + <xml name="creators/thawn"> + <person givenName="Till" familyName="Korten"/> + <yield/> + </xml> + +</macros> |
b |
diff -r 14f9986800fa -r e8c9e104e109 spot_detection_2d.py --- a/spot_detection_2d.py Mon Nov 13 22:12:30 2023 +0000 +++ b/spot_detection_2d.py Wed Sep 25 08:19:30 2024 +0000 |
[ |
b'@@ -1,88 +1,128 @@\n """\n Copyright 2021-2022 Biomedical Computer Vision Group, Heidelberg University.\n-Author: Qi Gao (qi.gao@bioquant.uni-heidelberg.de)\n+Authors:\n+- Qi Gao (qi.gao@bioquant.uni-heidelberg.de)\n+- Leonid Kostrykin (leonid.kostrykin@bioquant.uni-heidelberg.de)\n \n Distributed under the MIT license.\n See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\n-\n """\n \n import argparse\n \n-import imageio\n+import giatools.io\n import numpy as np\n import pandas as pd\n-from skimage.feature import peak_local_max\n-from skimage.filters import gaussian, laplace\n+import scipy.ndimage as ndi\n+from numpy.typing import NDArray\n+from skimage.feature import blob_dog, blob_doh, blob_log\n+\n+blob_filters = {\n+ \'dog\': blob_dog,\n+ \'doh\': blob_doh,\n+ \'log\': blob_log,\n+}\n \n \n-def getbr(xy, img, nb, firstn):\n- ndata = xy.shape[0]\n- br = np.empty((ndata, 1))\n- for j in range(ndata):\n- br[j] = np.NaN\n- if not np.isnan(xy[j, 0]):\n- timg = img[xy[j, 1] - nb - 1:xy[j, 1] + nb, xy[j, 0] - nb - 1:xy[j, 0] + nb]\n- br[j] = np.mean(np.sort(timg, axis=None)[-firstn:])\n- return br\n+def mean_intensity(img: NDArray, y: int, x: int, radius: int) -> float:\n+ assert img.ndim == 2\n+ assert radius >= 0\n+ if radius == 0:\n+ return float(img[y, x])\n+ else:\n+ mask = np.ones(img.shape, bool)\n+ mask[y, x] = False\n+ mask = (ndi.distance_transform_edt(mask) <= radius)\n+ return img[mask].mean()\n \n \n-def spot_detection(fn_in, fn_out, frame_1st=1, frame_end=0,\n- typ_filter=\'Gauss\', ssig=1, th=10,\n- typ_br=\'smoothed\', bd=10):\n- ims_ori = imageio.mimread(fn_in, format=\'TIFF\')\n- ims_smd = np.zeros((len(ims_ori), ims_ori[0].shape[0], ims_ori[0].shape[1]), dtype=\'float64\')\n- if frame_end == 0 or frame_end > len(ims_ori):\n- frame_end = len(ims_ori)\n+def spot_detection(\n+ fn_in: str,\n+ fn_out: str,\n+ frame_1st: int,\n+ frame_end: int,\n+ filter_type: str,\n+ min_scale: float,\n+ max_scale: float,\n+ abs_threshold: float,\n+ rel_threshold: float,\n+ boundary: int,\n+) -> None:\n \n- for i in range(frame_1st - 1, frame_end):\n- ims_smd[i, :, :] = gaussian(ims_ori[i].astype(\'float64\'), sigma=ssig)\n- ims_smd_max = np.max(ims_smd)\n+ # Load the single-channel 2-D input image (or stack thereof)\n+ stack = giatools.io.imread(fn_in)\n \n- txyb_all = np.array([]).reshape(0, 4)\n- for i in range(frame_1st - 1, frame_end):\n- tmp = np.copy(ims_smd[i, :, :])\n- if typ_filter == \'LoG\':\n- tmp = laplace(tmp)\n+ # Normalize input image so that it is a stack of images (possibly a stack of a single image)\n+ assert stack.ndim in (2, 3)\n+ if stack.ndim == 2:\n+ stack = stack.reshape(1, *stack.shape)\n+\n+ # Slice the stack\n+ assert frame_1st >= 1\n+ assert frame_end >= 0\n+ stack = stack[frame_1st - 1:]\n+ if frame_end > 0:\n+ stack = stack[:-frame_end]\n \n- tmp[tmp < th * ims_smd_max / 100] = 0\n- coords = peak_local_max(tmp, min_distance=1)\n- idx_to_del = np.where((coords[:, 0] <= bd) | (coords[:, 0] >= tmp.shape[0] - bd) |\n- (coords[:, 1] <= bd) | (coords[:, 1] >= tmp.shape[1] - bd))\n- coords = np.delete(coords, idx_to_del[0], axis=0)\n- xys = coords[:, ::-1]\n+ # Select the blob detection filter\n+ assert filter_type.lower() in blob_filters.keys()\n+ blob_filter = blob_filters[filter_type.lower()]\n+\n+ # Perform blob detection on each image of the stack\n+ detections = list()\n+ for img_idx, img in enumerate(stack):\n+ blobs = blob_filter(img, threshold=abs_threshold, threshold_rel=rel_threshold, min_sigma=min_scale, max_sigma=max_scale)\n+ for blob in blobs:\n+ y, x, scale = blob\n+\n+ # Skip the detection if it is too close to the boundary of the image\n+ if y < boundary or x < boundary or y >= img.shape[0] - boundar'..b'np.sqrt(2) * 2\n+ intensity = mean_intensity(img, round(y), round(x), round(radius))\n+ detections.append(\n+ {\n+ \'frame\': img_idx + 1,\n+ \'pos_x\': round(x),\n+ \'pos_y\': round(y),\n+ \'scale\': scale,\n+ \'radius\': radius,\n+ \'intensity\': intensity,\n+ }\n+ )\n \n- txyb = np.concatenate(((i + 1) * np.ones((xys.shape[0], 1)), xys, intens), axis=1)\n- txyb_all = np.concatenate((txyb_all, txyb), axis=0)\n-\n- df = pd.DataFrame()\n- df[\'FRAME\'] = txyb_all[:, 0].astype(int)\n- df[\'POS_X\'] = txyb_all[:, 1].astype(int)\n- df[\'POS_Y\'] = txyb_all[:, 2].astype(int)\n- df[\'INTENSITY\'] = txyb_all[:, 3]\n+ # Build and save dataframe\n+ df = pd.DataFrame.from_dict(detections)\n df.to_csv(fn_out, index=False, float_format=\'%.2f\', sep="\\t")\n \n \n if __name__ == "__main__":\n+\n parser = argparse.ArgumentParser(description="Spot detection")\n- parser.add_argument("fn_in", help="Name of input image sequence (stack)")\n- parser.add_argument("fn_out", help="Name of output file to save the coordinates and intensities of detected spots")\n- parser.add_argument("frame_1st", type=int, help="Index for the starting frame to detect spots (1 for first frame of the stack)")\n- parser.add_argument("frame_end", type=int, help="Index for the last frame to detect spots (0 for the last frame of the stack)")\n- parser.add_argument("filter", help="Detection filter")\n- parser.add_argument("ssig", type=float, help="Sigma of the Gaussian for noise suppression")\n- parser.add_argument("thres", type=float, help="Percentage of the global maximal for thresholding candidate spots")\n- parser.add_argument("typ_intens", help="smoothed or robust (for measuring the intensities of spots)")\n- parser.add_argument("bndy", type=int, help="Number of pixels (Spots close to image boundaries will be ignored)")\n+\n+ parser.add_argument("fn_in", help="Name of input image or image stack.")\n+ parser.add_argument("fn_out", help="Name of output file to write the detections into.")\n+ parser.add_argument("frame_1st", type=int, help="Index for the starting frame to detect spots (1 for first frame of the stack).")\n+ parser.add_argument("frame_end", type=int, help="Index for the last frame to detect spots (0 for the last frame of the stack).")\n+ parser.add_argument("filter_type", help="Detection filter")\n+ parser.add_argument("min_scale", type=float, help="The minimum scale to consider for multi-scale detection.")\n+ parser.add_argument("max_scale", type=float, help="The maximum scale to consider for multi-scale detection.")\n+ parser.add_argument("abs_threshold", type=float, help=(\n+ "Filter responses below this threshold will be ignored. Only filter responses above this thresholding will be considered as blobs. "\n+ "This threshold is ignored if the relative threshold (below) corresponds to a higher response.")\n+ )\n+ parser.add_argument("rel_threshold", type=float, help=(\n+ "Same as the absolute threshold (above), but as a fraction of the overall maximal filter response of an image. "\n+ "This threshold is ignored if it corresponds to a response below the absolute threshold.")\n+ )\n+ parser.add_argument("boundary", type=int, help="Width of image boundaries (in pixel) where spots will be ignored.")\n+\n args = parser.parse_args()\n spot_detection(args.fn_in, args.fn_out,\n frame_1st=args.frame_1st, frame_end=args.frame_end,\n- typ_filter=args.filter, ssig=args.ssig, th=args.thres,\n- typ_br=args.typ_intens, bd=args.bndy)\n+ filter_type=args.filter_type,\n+ min_scale=args.min_scale, max_scale=args.max_scale,\n+ abs_threshold=args.abs_threshold, rel_threshold=args.rel_threshold,\n+ boundary=args.boundary)\n' |
b |
diff -r 14f9986800fa -r e8c9e104e109 spot_detection_2d.xml --- a/spot_detection_2d.xml Mon Nov 13 22:12:30 2023 +0000 +++ b/spot_detection_2d.xml Wed Sep 25 08:19:30 2024 +0000 |
[ |
@@ -1,5 +1,13 @@ -<tool id="ip_spot_detection_2d" name="Perform 2D spot detection" version="0.0.3-2" profile="20.05"> +<tool id="ip_spot_detection_2d" name="Perform 2-D spot detection" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.05"> <description></description> + <macros> + <import>creators.xml</import> + <token name="@TOOL_VERSION@">0.1</token> + <token name="@VERSION_SUFFIX@">0</token> + </macros> + <creator> + <expand macro="creators/bmcv" /> + </creator> <edam_operations> <edam_operation>operation_3443</edam_operation> </edam_operations> @@ -7,10 +15,11 @@ <xref type="bio.tools">galaxy_image_analysis</xref> </xrefs> <requirements> - <requirement type="package" version="2.9.0">imageio</requirement> - <requirement type="package" version="1.20.2">numpy</requirement> + <requirement type="package" version="0.2.0">giatools</requirement> + <requirement type="package" version="1.26.4">numpy</requirement> <requirement type="package" version="1.2.4">pandas</requirement> - <requirement type="package" version="0.18.1">scikit-image</requirement> + <requirement type="package" version="0.21">scikit-image</requirement> + <requirement type="package" version="2024.6.18">tifffile</requirement> </requirements> <command detect_errors="aggressive"> <![CDATA[ @@ -19,49 +28,75 @@ '$fn_out' '$frame_1st' '$frame_end' - '$filter' - '$ssig' - '$thres' - '$typ_intens' - '$bndy' + '$filter_type' + '$min_scale' + '$max_scale' + '$abs_threshold' + '$rel_threshold' + '$boundary' ]]> </command> <inputs> - <param name="fn_in" type="data" format="tiff" label="Image sequence (stack)" /> + <param name="fn_in" type="data" format="tiff" label="Intensity image or a stack of images" /> <param name="frame_1st" type="integer" value="1" label="Starting time point (1 for the first frame of the stack)" /> <param name="frame_end" type="integer" value="0" label="Ending time point (0 for the last frame of the stack)" /> - <param name="filter" type="select" label="Choose a detection filter"> - <option value="Gauss" selected="True">Gaussian</option> - <option value="LoG">Laplacian-of-Gaussian, LoG (more accurate when spots have similar sizes)</option> + <param name="filter_type" type="select" label="Detection filter"> + <option value="LoG" selected="True">Laplacian of Gaussian</option> + <option value="DoG">Difference of Gaussians</option> + <option value="DoH">Determinant of Hessian</option> </param> - <param name="ssig" type="float" value="1.0" min="0.5" max="10" label="Sigma of the Gaussian (for noise suppression)" /> - <param name="thres" type="float" value="10.0" min="0" max="100" label="Percentage of the global maximal as the threshold for candidate spots" /> - <param name="typ_intens" type="select" label="How to measure the intensities"> - <option value="smoothed" selected="True">Smoothed</option> - <option value="robust">Robust</option> - </param> - <param name="bndy" type="integer" value="10" min="0" max="50" label="Width (in pixel) of image boundaries where spots will be ignored" /> + <param name="min_scale" type="float" value="1.0" min="1.0" label="Minimum scale" /> + <param name="max_scale" type="float" value="2.0" min="1.0" label="Maximum scale" /> + <param name="abs_threshold" type="float" value=".25" min="0" label="Minimum filter response (absolute)" help="Filter responses below this threshold will be ignored. Only filter responses above this thresholding will be considered as blobs. This threshold is ignored if the relative threshold (below) corresponds to a higher response." /> + <param name="rel_threshold" type="float" value="0" min="0" max="1" label="Minimum filter response (relative)" help="Same as the absolute threshold (above), but as a fraction of the overall maximum filter response of an image. This threshold is ignored if it corresponds to a response below the absolute threshold." /> + <param name="boundary" type="integer" value="10" min="0" label="Image boundary" help="Width of image boundaries (in pixel) where spots will be ignored." /> </inputs> <outputs> <data format="tabular" name="fn_out" /> </outputs> <tests> + <!-- Multi-frame input --> <test> - <param name="fn_in" value="test_img1.tif"/> + <param name="fn_in" value="input1.tif"/> <param name="frame_1st" value="1"/> <param name="frame_end" value="0"/> - <param name="filter" value="Gauss"/> - <param name="ssig" value="1"/> - <param name="thres" value="10"/> - <param name="typ_intens" value="smoothed"/> - <param name="bndy" value="10"/> - <output name="fn_out" value="spots_detected.tsv" ftype="tabular" /> + <param name="filter_type" value="LoG"/> + <param name="min_scale" value="1"/> + <param name="max_scale" value="2"/> + <param name="abs_threshold" value="0"/> + <param name="rel_threshold" value="0.1"/> + <param name="boundary" value="10"/> + <output name="fn_out" value="output1.tsv" ftype="tabular" /> + </test> + <!-- Single-frame input --> + <test> + <param name="fn_in" value="input2.tif"/> + <param name="frame_1st" value="1"/> + <param name="frame_end" value="0"/> + <param name="filter_type" value="LoG"/> + <param name="min_scale" value="1"/> + <param name="max_scale" value="2"/> + <param name="abs_threshold" value="0.04"/> + <param name="rel_threshold" value="0"/> + <param name="boundary" value="10"/> + <output name="fn_out" value="output2.tsv" ftype="tabular" /> </test> </tests> <help> - **What it does** + + **Perform spot detection and measure the image intensities.** + + This tool detects spots (blobs) and measures the image intensities in a single-channel 2-D image (or a stack of such images). + + The tool produces a TSV file containing all detections, with the following columns: - This tool detects spots and measures the intensities in a 2D image (sequence). + - ``frame``: The frame of the image stack + - ``pos_x``: The horizontal coordinate of the detection + - ``pos_y``: The vertical coordinate of the detection + - ``scale``: The scale at which the detection was found + - ``radius``: The radius of the detected spot + - ``intensity``: The mean intensity of the spot + </help> <citations> <citation type="doi">10.1097/j.pain.0000000000002642</citation> |
b |
diff -r 14f9986800fa -r e8c9e104e109 test-data/input1.tif |
b |
Binary file test-data/input1.tif has changed |
b |
diff -r 14f9986800fa -r e8c9e104e109 test-data/input2.tif |
b |
Binary file test-data/input2.tif has changed |
b |
diff -r 14f9986800fa -r e8c9e104e109 test-data/output1.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output1.tsv Wed Sep 25 08:19:30 2024 +0000 |
b |
b'@@ -0,0 +1,842 @@\n+frame\tpos_x\tpos_y\tscale\tradius\tintensity\n+1\t159\t172\t1.44\t4.09\t27906.43\n+1\t54\t122\t1.22\t3.46\t29360.38\n+1\t69\t115\t1.33\t3.77\t20894.57\n+1\t87\t140\t1.00\t2.83\t21561.59\n+1\t136\t168\t1.11\t3.14\t21860.79\n+1\t63\t99\t1.00\t2.83\t12672.24\n+1\t72\t154\t1.00\t2.83\t30284.17\n+1\t27\t86\t1.00\t2.83\t13341.76\n+1\t116\t170\t1.00\t2.83\t23941.62\n+1\t189\t175\t1.33\t3.77\t13750.10\n+1\t153\t172\t1.00\t2.83\t22797.66\n+1\t199\t175\t1.11\t3.14\t15502.10\n+1\t36\t80\t2.00\t5.66\t20915.44\n+1\t53\t102\t1.00\t2.83\t19177.07\n+1\t112\t168\t1.00\t2.83\t23776.00\n+1\t55\t103\t1.33\t3.77\t18107.43\n+1\t68\t126\t1.11\t3.14\t30432.07\n+1\t256\t185\t2.00\t5.66\t20966.09\n+1\t59\t129\t2.00\t5.66\t20757.60\n+1\t64\t140\t1.00\t2.83\t33087.97\n+1\t79\t124\t1.44\t4.09\t14448.31\n+1\t20\t32\t2.00\t5.66\t17742.65\n+1\t125\t172\t1.00\t2.83\t9583.69\n+1\t100\t157\t1.00\t2.83\t18380.62\n+1\t78\t134\t2.00\t5.66\t19145.59\n+1\t75\t145\t1.89\t5.34\t25723.49\n+1\t24\t54\t1.00\t2.83\t12915.79\n+1\t75\t137\t1.00\t2.83\t30160.41\n+1\t276\t178\t1.00\t2.83\t18951.03\n+1\t67\t147\t2.00\t5.66\t41562.49\n+1\t50\t98\t1.56\t4.40\t17461.08\n+1\t110\t167\t1.00\t2.83\t19002.28\n+1\t28\t62\t2.00\t5.66\t13138.30\n+1\t56\t137\t1.67\t4.71\t15212.44\n+1\t21\t46\t1.00\t2.83\t7621.38\n+1\t56\t130\t1.00\t2.83\t17625.03\n+1\t95\t153\t1.44\t4.09\t17551.90\n+1\t58\t126\t1.56\t4.40\t28724.78\n+1\t58\t106\t1.00\t2.83\t16589.59\n+1\t68\t130\t1.00\t2.83\t27909.45\n+1\t61\t109\t1.33\t3.77\t13064.31\n+1\t60\t144\t2.00\t5.66\t30528.99\n+1\t93\t172\t1.00\t2.83\t9379.83\n+1\t281\t175\t2.00\t5.66\t10718.76\n+1\t66\t154\t1.00\t2.83\t36866.59\n+1\t70\t138\t1.00\t2.83\t25350.45\n+1\t102\t161\t1.11\t3.14\t14508.31\n+1\t73\t138\t1.00\t2.83\t28934.21\n+1\t41\t127\t1.11\t3.14\t11074.14\n+1\t73\t128\t1.00\t2.83\t17470.62\n+1\t248\t184\t1.78\t5.03\t13194.38\n+1\t67\t151\t1.00\t2.83\t48337.86\n+1\t235\t182\t1.11\t3.14\t11060.69\n+1\t58\t99\t1.00\t2.83\t11734.45\n+1\t196\t175\t1.11\t3.14\t15272.45\n+1\t328\t143\t2.00\t5.66\t14041.33\n+1\t178\t173\t1.00\t2.83\t8690.69\n+1\t50\t144\t1.78\t5.03\t11072.10\n+1\t73\t118\t1.00\t2.83\t13777.79\n+1\t311\t160\t2.00\t5.66\t9783.41\n+1\t19\t23\t1.56\t4.40\t17069.22\n+1\t259\t186\t1.00\t2.83\t24486.07\n+1\t46\t84\t1.00\t2.83\t10166.72\n+1\t64\t158\t1.00\t2.83\t14172.28\n+1\t55\t146\t1.00\t2.83\t19391.66\n+1\t214\t178\t1.00\t2.83\t8996.48\n+1\t269\t179\t2.00\t5.66\t17463.88\n+1\t318\t155\t1.22\t3.46\t11827.45\n+1\t34\t90\t1.00\t2.83\t11129.38\n+1\t45\t96\t1.00\t2.83\t14346.03\n+1\t261\t178\t1.00\t2.83\t17947.93\n+1\t33\t141\t1.00\t2.83\t7288.24\n+1\t149\t169\t1.00\t2.83\t10410.86\n+1\t141\t168\t1.00\t2.83\t10329.86\n+1\t112\t172\t1.00\t2.83\t17837.86\n+1\t325\t148\t1.00\t2.83\t16720.28\n+1\t333\t142\t1.00\t2.83\t13613.38\n+1\t108\t172\t1.00\t2.83\t13053.41\n+1\t17\t24\t1.00\t2.83\t16528.17\n+1\t47\t151\t1.22\t3.46\t8967.34\n+1\t23\t25\t1.44\t4.09\t17208.12\n+1\t87\t130\t1.00\t2.83\t8139.24\n+1\t64\t150\t1.00\t2.83\t36538.34\n+1\t17\t30\t1.00\t2.83\t19660.69\n+1\t171\t176\t1.00\t2.83\t11652.69\n+1\t271\t175\t1.33\t3.77\t15835.69\n+1\t66\t156\t1.00\t2.83\t27881.00\n+1\t146\t174\t1.00\t2.83\t9184.45\n+1\t251\t182\t1.00\t2.83\t15565.93\n+1\t45\t128\t1.00\t2.83\t6041.28\n+1\t38\t83\t1.00\t2.83\t24316.24\n+1\t69\t121\t1.11\t3.14\t19150.90\n+1\t30\t136\t1.00\t2.83\t5841.83\n+1\t51\t114\t1.67\t4.71\t5608.44\n+1\t37\t87\t1.00\t2.83\t11063.76\n+1\t53\t137\t1.11\t3.14\t15352.00\n+1\t65\t111\t1.00\t2.83\t10562.52\n+1\t45\t91\t1.00\t2.83\t6160.41\n+1\t164\t175\t1.78\t5.03\t15567.52\n+1\t32\t138\t1.00\t2.83\t8170.34\n+1\t70\t148\t1.00\t2.83\t48634.00\n+1\t231\t183\t1.22\t3.46\t9699.97\n+1\t323\t152\t1.00\t2.83\t9268.90\n+1\t70\t145\t1.00\t2.83\t42528.59\n+1\t30\t88\t1.00\t2.83\t13678.66\n+1\t57\t140\t1.00\t2.83\t24875.76\n+1\t168\t176\t1.00\t2.83\t14728.24\n+1\t228\t182\t1.44\t4.09\t6844.78\n+1\t107\t170\t1.00\t2.83\t11676.48\n+1\t28\t47\t1.89\t5.34\t5555.27\n+1\t338\t136\t1.00\t2.83\t9288.21\n+1\t307\t162\t1.00\t2.83\t12198.79\n+1\t265\t177\t2.00\t5.66\t16124.70\n+1\t335\t137\t2.00\t5.66\t7449.70\n+1\t121\t166\t1.00\t2.83\t9614.10\n+1\t68\t133\t1.00\t2.83\t17773.83\n+1\t207\t180\t1.00\t2.83\t5037.31\n+1\t261\t184\t1.00\t2.83\t20553.28\n+1\t325\t144\t1.00\t2.83\t16420.31\n+1\t255\t180\t1.00\t2.83\t17766.34\n+1\t241\t183\t2.00\t5.66\t7933.49\n+1\t161\t169\t1.00\t2.83\t17190.79\n+1\t42\t82\t1.67\t4.71\t14055.05\n+1\t181\t177\t1.00\t2.83\t7821.86\n+1\t169\t172\t1.00\t2.83\t8669.62\n+1\t26\t94\t1.22\t3.46\t6227.86\n+1\t301\t164\t1.00\t2.83\t6435.41\n+1\t64\t144\t1.00\t2.83\t39628.86\n+1\t340\t134\t1.00\t2.83\t6909.38\n+1\t273\t175\t1.00\t2.83\t16026.03\n+1\t25\t19\t1.67\t4.71\t7893.28\n+1\t62\t114\t1.00\t2.83\t6925.00\n+1\t223\t181\t1.33\t3.77\t5492.76\n+1\t126\t167\t1.00\t2.83\t10517.38\n+1\t88\t157\t1.89\t5.34\t11451.14\n+1\t149\t174\t1.00\t2.83\t'..b'\n+5\t66\t147\t1.33\t3.77\t46781.53\n+5\t61\t146\t1.00\t2.83\t39603.76\n+5\t328\t142\t1.22\t3.46\t21653.90\n+5\t99\t156\t1.00\t2.83\t15589.17\n+5\t62\t156\t1.00\t2.83\t12673.14\n+5\t189\t175\t1.67\t4.71\t8459.68\n+5\t27\t63\t2.00\t5.66\t11557.43\n+5\t126\t172\t1.00\t2.83\t7756.38\n+5\t34\t90\t1.00\t2.83\t12319.93\n+5\t45\t84\t1.00\t2.83\t16452.83\n+5\t49\t134\t1.00\t2.83\t10883.66\n+5\t18\t24\t1.22\t3.46\t20439.48\n+5\t37\t76\t1.00\t2.83\t20910.34\n+5\t21\t32\t2.00\t5.66\t17137.16\n+5\t69\t131\t1.33\t3.77\t24516.63\n+5\t248\t185\t1.44\t4.09\t14514.80\n+5\t94\t172\t1.00\t2.83\t10027.97\n+5\t61\t142\t1.00\t2.83\t37004.97\n+5\t83\t154\t1.00\t2.83\t13718.55\n+5\t270\t179\t2.00\t5.66\t18128.76\n+5\t57\t99\t1.22\t3.46\t15601.10\n+5\t64\t130\t1.00\t2.83\t23041.86\n+5\t25\t20\t1.00\t2.83\t15195.34\n+5\t71\t154\t2.00\t5.66\t27945.08\n+5\t310\t161\t2.00\t5.66\t10084.60\n+5\t50\t98\t1.78\t5.03\t13786.68\n+5\t34\t142\t1.00\t2.83\t8293.93\n+5\t19\t34\t1.00\t2.83\t23094.14\n+5\t18\t32\t1.00\t2.83\t23720.17\n+5\t254\t186\t1.00\t2.83\t23441.48\n+5\t23\t26\t1.00\t2.83\t19101.28\n+5\t233\t183\t1.00\t2.83\t11593.93\n+5\t88\t144\t1.00\t2.83\t18261.59\n+5\t29\t88\t1.44\t4.09\t11435.35\n+5\t49\t144\t1.56\t4.40\t11416.76\n+5\t214\t178\t1.00\t2.83\t9065.83\n+5\t42\t86\t1.00\t2.83\t11837.97\n+5\t265\t177\t1.56\t4.40\t20759.84\n+5\t67\t154\t1.00\t2.83\t39978.07\n+5\t318\t154\t1.33\t3.77\t9323.84\n+5\t170\t176\t1.11\t3.14\t13875.28\n+5\t147\t174\t1.00\t2.83\t11282.79\n+5\t141\t168\t1.00\t2.83\t13197.93\n+5\t29\t46\t1.00\t2.83\t7440.07\n+5\t72\t128\t1.00\t2.83\t22614.48\n+5\t93\t169\t1.00\t2.83\t8539.59\n+5\t107\t170\t1.00\t2.83\t12792.83\n+5\t57\t141\t1.00\t2.83\t16482.41\n+5\t37\t88\t1.00\t2.83\t11806.62\n+5\t334\t140\t1.00\t2.83\t14870.86\n+5\t261\t178\t1.00\t2.83\t20074.34\n+5\t149\t168\t1.00\t2.83\t9209.55\n+5\t262\t184\t1.00\t2.83\t16633.93\n+5\t78\t123\t1.44\t4.09\t11052.51\n+5\t102\t162\t1.00\t2.83\t11048.76\n+5\t108\t172\t1.00\t2.83\t11777.14\n+5\t33\t140\t1.00\t2.83\t8462.21\n+5\t77\t125\t1.00\t2.83\t13132.76\n+5\t46\t96\t1.56\t4.40\t11979.57\n+5\t47\t152\t1.33\t3.77\t6613.61\n+5\t50\t114\t1.00\t2.83\t8628.17\n+5\t259\t187\t1.00\t2.83\t17202.90\n+5\t63\t138\t1.00\t2.83\t23292.24\n+5\t325\t144\t1.00\t2.83\t17692.97\n+5\t44\t92\t1.00\t2.83\t6596.62\n+5\t236\t182\t1.00\t2.83\t12523.07\n+5\t38\t86\t1.00\t2.83\t15052.48\n+5\t121\t171\t1.00\t2.83\t10089.59\n+5\t337\t136\t1.00\t2.83\t9264.48\n+5\t42\t128\t1.00\t2.83\t9867.28\n+5\t100\t160\t2.00\t5.66\t10584.07\n+5\t26\t48\t1.00\t2.83\t7103.00\n+5\t46\t128\t1.00\t2.83\t6246.38\n+5\t239\t183\t2.00\t5.66\t7694.42\n+5\t126\t167\t2.00\t5.66\t8428.45\n+5\t42\t131\t2.00\t5.66\t7674.46\n+5\t70\t139\t1.11\t3.14\t23471.52\n+5\t175\t176\t1.00\t2.83\t10830.76\n+5\t209\t180\t1.11\t3.14\t6236.79\n+5\t150\t174\t1.00\t2.83\t13992.48\n+5\t70\t148\t1.00\t2.83\t46916.90\n+5\t75\t131\t1.00\t2.83\t22997.83\n+5\t30\t138\t1.00\t2.83\t5048.72\n+5\t177\t174\t2.00\t5.66\t6949.47\n+5\t182\t177\t1.00\t2.83\t7089.93\n+5\t50\t146\t1.00\t2.83\t15843.10\n+5\t80\t149\t1.11\t3.14\t8468.48\n+5\t28\t56\t1.00\t2.83\t10858.79\n+5\t54\t144\t1.00\t2.83\t16601.31\n+5\t327\t148\t1.33\t3.77\t14213.94\n+5\t47\t100\t1.00\t2.83\t12052.07\n+5\t86\t130\t1.00\t2.83\t6965.79\n+5\t41\t80\t1.00\t2.83\t20215.93\n+5\t219\t180\t1.22\t3.46\t7401.48\n+5\t62\t134\t1.00\t2.83\t13539.48\n+5\t301\t165\t1.44\t4.09\t5798.22\n+5\t224\t181\t1.44\t4.09\t5581.10\n+5\t29\t50\t1.00\t2.83\t5986.59\n+5\t322\t151\t1.33\t3.77\t8691.41\n+5\t97\t152\t1.00\t2.83\t9814.24\n+5\t90\t168\t1.00\t2.83\t6996.07\n+5\t16\t28\t1.00\t2.83\t11527.83\n+5\t69\t122\t1.00\t2.83\t17030.93\n+5\t28\t85\t1.00\t2.83\t7521.52\n+5\t64\t122\t1.00\t2.83\t8394.72\n+5\t92\t155\t1.00\t2.83\t13070.66\n+5\t52\t153\t1.00\t2.83\t3696.00\n+5\t241\t185\t1.00\t2.83\t10168.34\n+5\t95\t158\t1.00\t2.83\t13755.00\n+5\t169\t172\t1.00\t2.83\t10061.17\n+5\t68\t164\t1.00\t2.83\t3990.10\n+5\t31\t79\t1.33\t3.77\t9202.12\n+5\t287\t173\t1.00\t2.83\t4265.03\n+5\t270\t175\t1.00\t2.83\t15685.86\n+5\t129\t168\t1.00\t2.83\t9140.38\n+5\t79\t140\t1.00\t2.83\t10138.17\n+5\t342\t134\t2.00\t5.66\t3263.28\n+5\t333\t136\t1.00\t2.83\t8771.66\n+5\t46\t123\t1.00\t2.83\t5527.52\n+5\t330\t146\t1.00\t2.83\t15002.83\n+5\t20\t42\t1.00\t2.83\t5665.59\n+5\t254\t180\t1.00\t2.83\t14516.55\n+5\t33\t67\t1.00\t2.83\t6117.10\n+5\t63\t136\t1.00\t2.83\t16992.03\n+5\t244\t183\t1.22\t3.46\t11482.76\n+5\t248\t181\t1.00\t2.83\t9676.59\n+5\t273\t175\t1.00\t2.83\t13397.03\n+5\t30\t60\t1.00\t2.83\t14415.14\n+5\t88\t133\t1.00\t2.83\t8095.41\n+5\t34\t116\t1.67\t4.71\t2869.68\n+5\t165\t173\t1.00\t2.83\t14944.66\n+5\t26\t44\t1.00\t2.83\t4749.86\n+5\t25\t14\t1.00\t2.83\t2978.90\n+5\t58\t163\t1.00\t2.83\t2765.93\n+5\t38\t121\t1.11\t3.14\t4779.00\n+5\t199\t180\t1.00\t2.83\t2045.72\n+5\t26\t93\t1.00\t2.83\t5904.55\n+5\t88\t136\t1.00\t2.83\t10331.93\n+5\t39\t125\t1.00\t2.83\t5272.03\n' |
b |
diff -r 14f9986800fa -r e8c9e104e109 test-data/output2.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output2.tsv Wed Sep 25 08:19:30 2024 +0000 |
b |
@@ -0,0 +1,39 @@ +frame pos_x pos_y scale radius intensity +1 85 32 1.33 3.77 18807.73 +1 190 25 1.78 5.03 24581.44 +1 137 26 1.44 4.09 19037.59 +1 63 42 1.44 4.09 22390.80 +1 107 44 1.33 3.77 23429.96 +1 61 27 1.56 4.40 18052.18 +1 158 39 1.44 4.09 18377.02 +1 190 14 1.33 3.77 18548.86 +1 182 33 1.78 5.03 26467.79 +1 39 39 1.44 4.09 14782.43 +1 169 26 1.33 3.77 14203.41 +1 61 54 1.33 3.77 23248.06 +1 95 52 1.33 3.77 21480.71 +1 23 60 1.89 5.34 25203.43 +1 84 24 1.56 4.40 16630.57 +1 121 47 1.67 4.71 15459.11 +1 66 49 1.11 3.14 23858.07 +1 115 36 2.00 5.66 16389.10 +1 55 51 1.33 3.77 23548.90 +1 130 72 1.67 4.71 15769.02 +1 117 23 1.33 3.77 16763.14 +1 45 52 1.56 4.40 22877.61 +1 36 71 1.56 4.40 20780.96 +1 78 17 1.33 3.77 16844.51 +1 101 38 1.56 4.40 21376.59 +1 147 31 1.78 5.03 16597.14 +1 163 55 2.00 5.66 18301.54 +1 164 23 1.33 3.77 17073.82 +1 150 24 1.56 4.40 15440.02 +1 151 67 1.78 5.03 18419.96 +1 26 53 2.00 5.66 20586.01 +1 79 62 1.33 3.77 15232.88 +1 69 17 1.11 3.14 15601.83 +1 83 52 1.33 3.77 18315.00 +1 16 54 2.00 5.66 22140.66 +1 166 61 1.78 5.03 18488.78 +1 163 43 1.44 4.09 16925.49 +1 130 53 1.78 5.03 15101.96 |
b |
diff -r 14f9986800fa -r e8c9e104e109 test-data/spots_detected.tsv --- a/test-data/spots_detected.tsv Mon Nov 13 22:12:30 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
b'@@ -1,462 +0,0 @@\n-FRAME\tPOS_X\tPOS_Y\tINTENSITY\n-1\t126\t202\t55939.36\n-1\t218\t227\t41590.82\n-1\t132\t201\t41849.38\n-1\t120\t199\t45491.74\n-1\t113\t177\t27103.64\n-1\t95\t135\t33206.37\n-1\t130\t209\t36872.91\n-1\t128\t170\t30994.56\n-1\t315\t240\t38767.19\n-1\t123\t195\t32988.47\n-1\t117\t181\t40031.76\n-1\t118\t184\t36812.77\n-1\t127\t181\t29651.66\n-1\t134\t192\t28531.76\n-1\t137\t189\t35093.95\n-1\t195\t223\t30206.57\n-1\t78\t87\t30367.18\n-1\t146\t195\t26779.82\n-1\t175\t225\t28515.74\n-1\t213\t227\t30812.06\n-1\t114\t158\t31229.97\n-1\t171\t223\t26982.37\n-1\t87\t117\t27143.89\n-1\t129\t194\t29475.93\n-1\t115\t192\t28510.64\n-1\t248\t230\t22615.54\n-1\t154\t208\t26394.30\n-1\t109\t153\t26268.78\n-1\t328\t234\t26387.65\n-1\t138\t179\t20215.40\n-1\t159\t212\t24400.22\n-1\t335\t233\t21698.80\n-1\t387\t198\t24933.29\n-1\t121\t154\t18710.45\n-1\t308\t239\t22328.27\n-1\t258\t230\t18680.93\n-1\t340\t229\t15937.72\n-1\t78\t78\t18151.49\n-1\t81\t80\t24704.83\n-1\t117\t161\t24293.65\n-1\t120\t164\t24242.78\n-1\t160\t215\t23759.44\n-1\t86\t141\t10949.28\n-1\t222\t230\t22277.61\n-1\t370\t215\t18379.39\n-1\t109\t199\t18850.01\n-1\t83\t109\t15871.12\n-1\t117\t155\t15703.14\n-1\t100\t182\t17281.91\n-1\t168\t227\t17431.67\n-1\t392\t197\t15897.67\n-1\t184\t227\t11346.34\n-1\t294\t237\t10236.84\n-1\t377\t210\t15642.67\n-1\t152\t226\t9851.10\n-1\t93\t145\t12584.04\n-1\t147\t212\t14735.83\n-1\t80\t101\t11021.47\n-1\t394\t193\t14063.18\n-1\t105\t139\t12039.57\n-1\t301\t237\t11466.69\n-1\t273\t233\t8421.28\n-1\t111\t170\t14406.46\n-1\t237\t228\t9466.36\n-1\t106\t206\t14522.55\n-1\t83\t75\t11115.23\n-1\t290\t238\t12636.07\n-1\t205\t229\t12808.78\n-1\t381\t207\t11531.86\n-1\t92\t196\t9024.83\n-1\t185\t222\t11196.17\n-1\t180\t221\t8339.93\n-1\t146\t185\t7207.70\n-1\t142\t209\t11730.52\n-1\t88\t101\t10415.08\n-1\t235\t231\t11264.22\n-1\t85\t103\t5911.48\n-1\t104\t183\t8101.94\n-1\t85\t148\t7290.63\n-1\t145\t189\t9776.95\n-1\t361\t219\t7009.70\n-1\t282\t236\t8853.80\n-1\t121\t169\t7733.35\n-1\t107\t180\t8135.17\n-1\t266\t235\t7470.55\n-1\t79\t96\t6920.43\n-1\t152\t219\t5623.45\n-1\t149\t220\t5889.31\n-2\t126\t202\t59098.11\n-2\t126\t205\t53383.42\n-2\t218\t227\t46745.07\n-2\t120\t199\t43055.88\n-2\t116\t180\t45577.81\n-2\t127\t181\t42874.19\n-2\t130\t209\t41387.22\n-2\t123\t195\t33569.00\n-2\t113\t177\t31339.11\n-2\t128\t170\t35552.32\n-2\t135\t191\t30546.65\n-2\t95\t136\t34169.11\n-2\t315\t238\t31430.32\n-2\t314\t240\t30015.35\n-2\t116\t201\t26928.89\n-2\t196\t223\t29118.84\n-2\t175\t225\t29053.82\n-2\t213\t227\t34704.93\n-2\t115\t159\t29750.71\n-2\t146\t195\t27597.86\n-2\t328\t234\t28969.08\n-2\t113\t191\t25325.73\n-2\t79\t87\t27998.19\n-2\t340\t229\t19788.22\n-2\t154\t207\t25348.79\n-2\t81\t81\t25643.11\n-2\t172\t224\t25762.85\n-2\t87\t117\t24830.46\n-2\t169\t222\t19415.52\n-2\t325\t232\t23879.48\n-2\t248\t230\t23270.45\n-2\t110\t153\t24396.90\n-2\t387\t198\t23947.67\n-2\t87\t143\t16954.62\n-2\t118\t162\t26061.81\n-2\t78\t79\t23543.41\n-2\t258\t230\t16996.33\n-2\t121\t165\t22822.04\n-2\t387\t201\t25260.27\n-2\t335\t233\t19553.33\n-2\t223\t230\t22795.66\n-2\t159\t212\t20956.68\n-2\t370\t216\t19989.36\n-2\t320\t233\t13806.24\n-2\t308\t239\t17964.97\n-2\t105\t139\t18000.56\n-2\t109\t200\t17896.86\n-2\t83\t109\t16421.63\n-2\t105\t151\t17984.13\n-2\t137\t179\t12811.40\n-2\t110\t169\t14111.65\n-2\t228\t231\t18325.92\n-2\t392\t196\t14572.82\n-2\t153\t228\t14935.83\n-2\t122\t154\t11708.73\n-2\t83\t75\t13067.82\n-2\t153\t213\t16283.67\n-2\t295\t237\t9677.50\n-2\t377\t210\t13457.71\n-2\t273\t233\t9148.80\n-2\t205\t229\t13083.06\n-2\t381\t206\t10603.41\n-2\t80\t101\t9485.05\n-2\t152\t202\t15278.04\n-2\t185\t226\t11093.24\n-2\t161\t216\t15543.22\n-2\t146\t212\t14364.79\n-2\t235\t231\t12509.71\n-2\t290\t238\t13411.96\n-2\t93\t145\t9119.49\n-2\t142\t210\t13054.23\n-2\t239\t232\t13043.98\n-2\t92\t196\t10749.96\n-2\t185\t221\t9922.40\n-2\t299\t238\t13577.34\n-2\t278\t235\t11194.38\n-2\t100\t182\t11485.41\n-2\t145\t189\t11315.24\n-2\t237\t228\t11272.61\n-2\t107\t189\t8051.49\n-2\t87\t101\t8814.45\n-2\t146\t186\t7585.02\n-2\t106\t207\t8720.64\n-2\t109\t207\t7676.81\n-2\t402\t188\t7813.91\n-2\t88\t108\t7921.85\n-2\t360\t220\t7726.74\n-2\t86\t148\t7184.91\n-2\t106\t180\t8401.49\n-2\t95\t173\t4093.76\n-2\t266\t235\t5678.52\n-2\t122\t172\t5731.76\n-2\t127\t218\t4787.41\n-3\t126\t206\t56658.14\n-3\t126\t202\t54234.74\n-3\t218\t226\t35022.37\n-3\t119\t200\t40576.02\n-3\t133\t201\t44149.96\n-3\t115\t178\t43820.79\n-3\t124\t196\t41934.96\n-3\t117\t180\t43996.85\n-3\t130\t209\t42016.60\n-3\t136\t190\t39500.63\n-3\t316\t237\t31963.21\n-3\t97\t137\t36182.78\n-3\t127\t181\t31990.16\n-3\t119\t184\t34251.83\n-3\t114\t158\t29844.61\n-3\t146\t196\t37064.84\n-3\t128\t186\t34532.76\n-3\t176\t225\t30746.00\n-3\t196\t223\t29807.10\n-3\t213\t226\t25523.49\n-3\t128\t17'..b'34\t231\t13284.28\n-3\t236\t228\t8838.32\n-3\t106\t207\t10942.68\n-3\t381\t206\t8704.24\n-3\t238\t231\t13112.03\n-3\t109\t169\t9573.93\n-3\t88\t101\t9934.59\n-3\t104\t183\t7882.07\n-3\t85\t103\t8202.08\n-3\t361\t219\t7171.66\n-3\t278\t235\t10260.85\n-3\t268\t235\t8025.01\n-3\t146\t188\t9096.57\n-3\t283\t236\t9090.54\n-3\t399\t190\t6873.99\n-3\t145\t185\t6134.20\n-3\t105\t179\t6141.86\n-3\t97\t176\t6082.70\n-3\t110\t207\t4505.63\n-3\t127\t219\t5028.42\n-3\t94\t171\t6146.80\n-4\t126\t202\t55939.36\n-4\t218\t227\t41590.82\n-4\t132\t201\t41849.38\n-4\t120\t199\t45491.74\n-4\t113\t177\t27103.64\n-4\t95\t135\t33206.37\n-4\t130\t209\t36872.91\n-4\t128\t170\t30994.56\n-4\t315\t240\t38767.19\n-4\t123\t195\t32988.47\n-4\t117\t181\t40031.76\n-4\t118\t184\t36812.77\n-4\t127\t181\t29651.66\n-4\t134\t192\t28531.76\n-4\t137\t189\t35093.95\n-4\t195\t223\t30206.57\n-4\t78\t87\t30367.18\n-4\t146\t195\t26779.82\n-4\t175\t225\t28515.74\n-4\t213\t227\t30812.06\n-4\t114\t158\t31229.97\n-4\t171\t223\t26982.37\n-4\t87\t117\t27143.89\n-4\t129\t194\t29475.93\n-4\t115\t192\t28510.64\n-4\t248\t230\t22615.54\n-4\t154\t208\t26394.30\n-4\t109\t153\t26268.78\n-4\t328\t234\t26387.65\n-4\t138\t179\t20215.40\n-4\t159\t212\t24400.22\n-4\t335\t233\t21698.80\n-4\t387\t198\t24933.29\n-4\t121\t154\t18710.45\n-4\t308\t239\t22328.27\n-4\t258\t230\t18680.93\n-4\t340\t229\t15937.72\n-4\t78\t78\t18151.49\n-4\t81\t80\t24704.83\n-4\t117\t161\t24293.65\n-4\t120\t164\t24242.78\n-4\t160\t215\t23759.44\n-4\t86\t141\t10949.28\n-4\t222\t230\t22277.61\n-4\t370\t215\t18379.39\n-4\t109\t199\t18850.01\n-4\t83\t109\t15871.12\n-4\t117\t155\t15703.14\n-4\t100\t182\t17281.91\n-4\t168\t227\t17431.67\n-4\t392\t197\t15897.67\n-4\t184\t227\t11346.34\n-4\t294\t237\t10236.84\n-4\t377\t210\t15642.67\n-4\t152\t226\t9851.10\n-4\t93\t145\t12584.04\n-4\t147\t212\t14735.83\n-4\t80\t101\t11021.47\n-4\t394\t193\t14063.18\n-4\t105\t139\t12039.57\n-4\t301\t237\t11466.69\n-4\t273\t233\t8421.28\n-4\t111\t170\t14406.46\n-4\t237\t228\t9466.36\n-4\t106\t206\t14522.55\n-4\t83\t75\t11115.23\n-4\t290\t238\t12636.07\n-4\t205\t229\t12808.78\n-4\t381\t207\t11531.86\n-4\t92\t196\t9024.83\n-4\t185\t222\t11196.17\n-4\t180\t221\t8339.93\n-4\t146\t185\t7207.70\n-4\t142\t209\t11730.52\n-4\t88\t101\t10415.08\n-4\t235\t231\t11264.22\n-4\t85\t103\t5911.48\n-4\t104\t183\t8101.94\n-4\t85\t148\t7290.63\n-4\t145\t189\t9776.95\n-4\t361\t219\t7009.70\n-4\t282\t236\t8853.80\n-4\t121\t169\t7733.35\n-4\t107\t180\t8135.17\n-4\t266\t235\t7470.55\n-4\t79\t96\t6920.43\n-4\t152\t219\t5623.45\n-4\t149\t220\t5889.31\n-5\t126\t206\t56658.14\n-5\t126\t202\t54234.74\n-5\t218\t226\t35022.37\n-5\t119\t200\t40576.02\n-5\t133\t201\t44149.96\n-5\t115\t178\t43820.79\n-5\t124\t196\t41934.96\n-5\t117\t180\t43996.85\n-5\t130\t209\t42016.60\n-5\t136\t190\t39500.63\n-5\t316\t237\t31963.21\n-5\t97\t137\t36182.78\n-5\t127\t181\t31990.16\n-5\t119\t184\t34251.83\n-5\t114\t158\t29844.61\n-5\t146\t196\t37064.84\n-5\t128\t186\t34532.76\n-5\t176\t225\t30746.00\n-5\t196\t223\t29807.10\n-5\t213\t226\t25523.49\n-5\t128\t171\t28664.10\n-5\t152\t204\t24687.37\n-5\t329\t234\t28277.06\n-5\t78\t87\t26725.30\n-5\t81\t87\t30473.18\n-5\t172\t225\t26643.89\n-5\t120\t163\t26474.56\n-5\t387\t197\t21111.91\n-5\t86\t117\t20367.28\n-5\t335\t233\t20895.73\n-5\t324\t232\t23086.43\n-5\t339\t229\t15275.48\n-5\t129\t194\t24033.17\n-5\t123\t185\t24073.76\n-5\t77\t79\t19152.47\n-5\t169\t222\t17195.61\n-5\t132\t175\t25123.86\n-5\t81\t81\t24895.65\n-5\t109\t153\t21172.27\n-5\t117\t161\t24299.24\n-5\t307\t240\t19257.85\n-5\t370\t215\t18554.16\n-5\t222\t230\t22017.20\n-5\t104\t139\t20194.29\n-5\t248\t230\t23396.01\n-5\t257\t230\t17273.50\n-5\t116\t154\t15659.69\n-5\t114\t190\t21449.57\n-5\t158\t211\t18454.95\n-5\t83\t109\t17776.43\n-5\t84\t75\t15659.83\n-5\t158\t215\t19800.41\n-5\t109\t199\t15805.24\n-5\t101\t140\t20715.26\n-5\t143\t210\t20769.18\n-5\t88\t144\t20132.54\n-5\t93\t145\t12670.17\n-5\t228\t231\t19053.86\n-5\t393\t195\t13463.33\n-5\t80\t101\t13305.58\n-5\t105\t151\t15913.95\n-5\t137\t179\t15719.37\n-5\t167\t226\t17465.42\n-5\t293\t238\t15459.81\n-5\t377\t209\t10830.81\n-5\t185\t222\t13711.26\n-5\t108\t189\t16955.73\n-5\t185\t226\t12648.79\n-5\t153\t227\t14010.45\n-5\t101\t186\t14180.61\n-5\t298\t238\t16257.78\n-5\t121\t189\t14906.88\n-5\t151\t210\t12848.29\n-5\t274\t233\t11026.17\n-5\t93\t197\t14149.59\n-5\t234\t231\t13284.28\n-5\t236\t228\t8838.32\n-5\t106\t207\t10942.68\n-5\t381\t206\t8704.24\n-5\t238\t231\t13112.03\n-5\t109\t169\t9573.93\n-5\t88\t101\t9934.59\n-5\t104\t183\t7882.07\n-5\t85\t103\t8202.08\n-5\t361\t219\t7171.66\n-5\t278\t235\t10260.85\n-5\t268\t235\t8025.01\n-5\t146\t188\t9096.57\n-5\t283\t236\t9090.54\n-5\t399\t190\t6873.99\n-5\t145\t185\t6134.20\n-5\t105\t179\t6141.86\n-5\t97\t176\t6082.70\n-5\t110\t207\t4505.63\n-5\t127\t219\t5028.42\n-5\t94\t171\t6146.80\n' |
b |
diff -r 14f9986800fa -r e8c9e104e109 test-data/test_img1.tif |
b |
Binary file test-data/test_img1.tif has changed |