{"id":20215378,"url":"https://github.com/kitwaremedical/imageviewer","last_synced_at":"2025-10-11T23:02:43.497Z","repository":{"id":5680676,"uuid":"6890715","full_name":"KitwareMedical/ImageViewer","owner":"KitwareMedical","description":"A lightweight, cross-platform 2D/3D medical image viewer.","archived":false,"fork":false,"pushed_at":"2023-09-25T13:34:01.000Z","size":8357,"stargazers_count":41,"open_issues_count":5,"forks_count":29,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-10-11T12:42:46.814Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KitwareMedical.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-11-27T20:53:02.000Z","updated_at":"2024-11-23T13:10:02.000Z","dependencies_parsed_at":"2023-01-11T17:00:38.523Z","dependency_job_id":"cc80f7e5-7739-4afb-a2a0-202694db6547","html_url":"https://github.com/KitwareMedical/ImageViewer","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/KitwareMedical/ImageViewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2FImageViewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2FImageViewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2FImageViewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2FImageViewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KitwareMedical","download_url":"https://codeload.github.com/KitwareMedical/ImageViewer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitwareMedical%2FImageViewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279009248,"owners_count":26084570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T06:21:45.883Z","updated_at":"2025-10-11T23:02:43.449Z","avatar_url":"https://github.com/KitwareMedical.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"ImageViewer\n===========\n\nDescription\n-----------\n\nImageViewer is a cross-platform image viewer based on [ITK](http://www.itk.org). This simple-yet-effective slice-based viewer works on 2D and 3D images, supports the probing of data values, painting overlays on images, and collecting landmarks from images.\n\nThis application was originally bundled with the [ITKApps](http://itk.org/ITKApps.git) repository.\n\nBinaries\n--------\n\nContinuously updated binaries for Windows, Linux, and Macs are automatically created as artifacts using Github Actions with each new pull request.  These are available in the webpage associated with each actions (i.e., on the following link, click on the most recent action that has a green checkmark next to it, and then scroll down to the bottom of that page to see the artifacts associated with that action.\n\nhttps://github.com/KitwareMedical/ImageViewer/actions\n\nWe have also provided binaries for each release.  Follow the release link on the righthand side of the page, and the binaries are bundled with each release.\n\n\nBuilding\n--------\n\nBuilding requires [CMake](http://www.cmake.org), ITK, SlicerExectuionModel, Qt5, and a C++ compiler. \n\n\n*1) CMake*\n\nCompling ITK (and therefore ImageViewer) requires that you have CMake 3.11 or later.\n\nYou can download CMake from http://www.cmake.org or via ```apt-get cmake-gui```\n\n*2) ITK*\n\nFor ITK, we want to compile ITK v5.0 or later.   Begin by checking out ITK's source\n\n    $ cd /                              (To keep paths short, start at a top-level dir)\n    $ mkdir src\n    $ cd src\n    $ git clone https://github.com:/InsightSoftwareConsortium/ITK.git -b release\n    $ mkdir ITK-Release\n    $ cmake-gui ../ITK\n\nUsing CMake, you should configure ITK with the following options\n* CMAKE_BUILD_TYPE = Release           (This is an advanced option)\n* You may also want to turn off building Tests and Examples\n\nOnce you have configured and generated your build files (e.g., for make or ninja or whatever):\n\n    $ ninja  (or make, or nmake, or whatever is appropriate for your system)\n\n*3) SlicerExecutionModel*\n\nAfter compiling ITK, we repeat the build process for SlicerExecutionModel:\n\n    $ cd /src\n    $ git clone https://github.com:/Slicer/SlicerExecutionModel.git\n    $ mkdir SlicerExecutionModel-Release\n    $ cd SlicerExecutionModel-Release\n    $ cmake-gui ../SlicerExecutionModel\n\nUsing CMake, you should configure SlicerExecutionModel as follows:\n* CMAKE_BUILD_TYPE = Release\n* ITK_DIR = /src/ITK-Release\n\nOnce SlicerExecutionModel's cmake files are configured and build files are\ngenerated, you should build the application:\n\n    $ ninja  (or make, or nmake, or whatever is appropriate for your system)\n\nThis build should be relatively quick.\n\n*4) Qt5*\n\nInstall Qt5 developer packages via [qt.io](qt.io) or via apt-get.\nRequires at least version 5.11.\n\n*5) ImageViewer*\n\nInstalling \n\n    $ cd /src\n    $ git clone https://github.com/KitwareMedical/ImageViewer.git\n    $ mkdir ImageViewer-Release\n    $ cd ImageViewer-Release\n    $ cmake-gui ../ImageViewer\n    \nUsing CMake, you should configure ImageViewer as follows:\n* CMAKE_BUILD_TYPE = Release\n* ITK_DIR = /src/ITK-Release\n* SlicerExecutionModel_DIR = /src/SlicerExecutionModel-Release\n* Qt5_DIR = (should be populated automatically, otherwise set it for your system)\n\nThen configure and generate your build files using cmake, and compile\n\n    $ ninja   (or make or whatever)\n    \nNow you will want to add ImageViewer's executable to your command-line PATH.\nThe directory to include in your PATH is:\n    /src/ImageViewer-release/ImageViewer/ImageViewer/bin.\n\nUsage\n-----\n\n    $ ImageViewer -h \n    \nReturns the following\n\n```\nUSAGE: \n\n  /src/ImageViewer-Release/ImageViewer/bin/ImageViewer\n     [--returnparameterfile \u003cstd::string\u003e]\n     [--processinformationaddress \u003cstd::string\u003e]\n     [--xml]\n     [--echo]\n     [-d \u003cMin|Max|Flip\u003e]\n     [-e \u003cMin|Max|Flip\u003e]\n     [-l \u003cValue|Inverse|Log|Deriv-X|Deriv-Y|Deriv-Z|Blend|MIP\u003e]\n     [-T]\n     [-A]\n     [-V]\n     [-P]\n     [-D \u003cint\u003e]\n     [-C]\n     [-b \u003cdouble\u003e]\n     [-x]\n     [-y]\n     [-z]\n     [-t]\n     [-m \u003cdouble\u003e]\n     [-a \u003cdouble\u003e]\n     [-q \u003cdouble\u003e]\n     [-s \u003cint\u003e]\n     [-o \u003cint\u003e]\n     [-j \u003cstd::string\u003e]\n     [--]\n     [--version]\n     [-h]\n     \u003cstd::string\u003e\n\n\nWhere: \n\n   --returnparameterfile \u003cstd::string\u003e\n     Filename in which to write simple return parameters (int, float,\n     int-vector, etc.) as opposed to bulk return parameters (image,\n     geometry, transform, measurement, table).\n\n   --processinformationaddress \u003cstd::string\u003e\n     Address of a structure to store process information (progress, abort,\n     etc.). (value: 0)\n\n   --xml\n     Produce xml description of command line arguments (value: 0)\n\n   --echo\n     Echo the command line arguments (value: 0)\n\n   -d \u003cMin|Max|Flip\u003e,  --iwMin \u003cMin|Max|Flip\u003e\n     Toggle between clipping and setting to black values above IW lower\n     limit. (value: Min)\n\n   -e \u003cMin|Max|Flip\u003e,  --iwMax \u003cMin|Max|Flip\u003e\n     Toggle between clipping and setting to black values above IW upper\n     limit. (value: Max)\n\n   -l \u003cValue|Inverse|Log|Deriv-X|Deriv-Y|Deriv-Z|Blend|MIP\u003e,  --mode \u003cValue\n      |Inverse|Log|Deriv-X|Deriv-Y|Deriv-Z|Blend|MIP\u003e\n     Toggle the mode as the data is viewed.\n\n   -T,  --points\n     Toggle display of clicked points. (value: 0)\n\n   -A,  --axis\n     View axis labels: P posterior, L left and S superior. (value: 0)\n\n   -V,  --value\n     Disable Viewing of image values at last clicked point. (value: 0)\n\n   -P,  --physical\n     Toggle coordinates display between index and physical units. (value:\n     0)\n\n   -D \u003cint\u003e,  --details \u003cint\u003e\n     Display details as an overlay on the image, inside a Controls Widget\n     or turn it off. (value: 1)\n\n   -C,  --crosshairs\n     Disable viewing location of last position clicked via crosshairs.\n     (value: 0)\n\n   -b \u003cdouble\u003e,  --opacity \u003cdouble\u003e\n     Set the overlay opacity. (value: 1)\n\n   -x,  --xFlipped\n     Flip the X axis. (value: 0)\n\n   -y,  --yFlipped\n     Flip the Y axis. (value: 0)\n\n   -z,  --zFlipped\n     Flip the Z axis. (value: 0)\n\n   -t,  --transpose\n     Transpose the axis of the slice being viewed. (value: 0)\n\n   -m \u003cdouble\u003e,  --zoom \u003cdouble\u003e\n     Set zoom value. (value: 1)\n\n   -a \u003cdouble\u003e,  --minIntensity \u003cdouble\u003e\n     Set the lower of the intensity widowing. (value: 0)\n\n   -q \u003cdouble\u003e,  --maxIntensity \u003cdouble\u003e\n     Set the upper of the intensity widowing. (value: 0)\n\n   -s \u003cint\u003e,  --sliceOffset \u003cint\u003e\n     Set slices number. (value: -1)\n\n   -o \u003cint\u003e,  --orientation \u003cint\u003e\n     Set slices orientation. (value: 2)\n\n   -j \u003cstd::string\u003e,  --overlayImage \u003cstd::string\u003e\n     Overlay Image.\n\n   --,  --ignore_rest\n     Ignores the rest of the labeled arguments following this flag.\n\n   --version\n     Displays version information and exits.\n\n   -h,  --help\n     Displays usage information and exits.\n\n   \u003cstd::string\u003e\n     (required)  Input Image.\n\n\n   Description: No description provided\n\n   Author(s): Kitware\n\n```\n\nCommands while running ImageViewer\n----------------------------------\n\nOnce an image (and optional overlay) have been loaded and are being displayed, key commands are available to manipulate the visualization.   Pressing 'h' bring us a current list of commands.   Those commands include the following:\n\n```\n   0 - View slices along the x-axis\n   1 - View slices along the y-axis\n   2 - View slices along the z-axis (default)\n\n   \u003e , - View the next slice\n   \u003c , - View the previous slice\n\n   r -reset all options\n   h - help (this document)\n\n   x - Flip the x-axis\n   y - Flip the y-axis\n   z - Flip the z-axis\n\n   f - Toggle fast-pace mode: quicker movement and intensity windowing\n\n   q w - Decrease, Increase the upper limit of the intensity windowing\n   e - Toggle between clipping and setting-to-black values above IW upper limit\n   \n   a s - Decrease, Increase the lower limit of the intensity windowing\n   d - Toggle between clipping and setting-to-white values below IW lower limit\n   \n   + = - Zoom-in by a factor of 2\n   - _ - Zoom-out by a factor of 2\n   \n   i j k m - Shift the image in the corresponding direction\n   t - Transpose the axis of the slice being viewed\n   \n   A - View axis labels: P=posterior, L=left, S=superior\n   C - View crosshairs that illustrate last user-click in the window\n   V - View image values as the user clicks in the window\n   T - Toggle display of clicked points\n   P - Toggle coordinates display between index and physical units\n   D - View image details as an overlay on the image\n   O - View a color overlay (application dependent)\n   p - Save the clicked points in a file\n   l - Toggle how the data is the window is viewed:\n       Modes cycle between the following views:\n         - Intensity\n         - Inverse\n         - Log\n         - Derivative wrt x\n         - Derivative wrt y\n         - Derivative wrt z\n         - Blend with previous and next slice\n         - MIP\n    \n   \\ - cycle between Select, Custom, and Paint mode\n        - Default Custom is threshold connected components\n   [ ] - increase / decrease paint sphere radius\n   { } - increase / decrease paint color (0 erases)\n   \" - save the overlay to a file\n```\n\n\"CUSTOM\" mouse mode: Extending Capabilities\n-------------------------------------------\n\nIt is possible to quickly and easily extend the functionality of ImageViewer by writing a callback function that is called each\ntime the user presses, moves, or relases the left mouse button.   This callback is typically added to the application's top-level .cxx file.   For example, see the\ncallback in ```ImageViewer/ImageViewer/ImageViewer.cxx```\n\nBy default, ImageViewer provides a threshold connected component filter as a \"CUSTOM\" method.   The first point selected by pressing the mouse button sets the lower/upper threshold and a seed point for ITK's threshold connected component filter.  If the mouse is dragged into another voxel, the current voxel pointed to by the mouse sets the opposing upper/lower threshold and the filter is re-run.   Output of this filter becomes the overlay of the image, which can then be edited using the PAINT mode (chosen by pressing the '\\' key.\n\nAcknowledgements\n----------------\n\nThe development of TubeTK is supported in part by the\n\n* [NCI](http://www.cancer.gov/) under award numbers R01CA138419, R01CA170665, R43CA165621, and R44CA143234;\n* [NIBIB](http://www.nibib.nih.gov) (NBIB) of the National Institutes of Health (NIH) under award numbers R01EB014955, R41EB015775, R43EB016621, and U54EB005149;\n* [NIBIB](http://www.nibib.nih.gov) and [NIGMS](http://www.nigms.nih.gov) R01EB021396;\n* [NINDS](http://www.ninds.nih.gov) R42NS086295 and R41NS081792;\n* [Defense Advanced Research Projects Agency](http://www.darpa.mil) (DARPA) under the TRUST program.\n\nLicense\n-------\n\nThis software is distributed under the Apache 2.0 license. Please see\nthe *LICENSE* file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitwaremedical%2Fimageviewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitwaremedical%2Fimageviewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitwaremedical%2Fimageviewer/lists"}