{
  "abstract": "To facilitate the analysis of medical image data in research environment, MATITK is developed to allow ITK algorithms to be called in MATLAB. ITK is a powerful open-source image analysis toolkit, but it requires the knowledge of C++ to use it. With the help of MATITK, researchers familiar with MATLAB can harness the power of ITK without learning C++ and worrying about low-level programming issues. A common set of C++ classes have also been produced to allow future ITK methods to be added to MATITK therefore callable in MATLAB without the bothersome translation between MATLAB and ITK.",
  "authors": [
    {
      "author_fullname": "Chu, Vincent",
      "author_place": 1,
      "persona_email": "vwchu@sfu.ca",
      "persona_firstname": "Vincent",
      "persona_id": 342,
      "persona_lastname": "Chu"
    },
    {
      "author_fullname": "Hamarneh, Ghassan",
      "author_place": 2,
      "persona_email": "hamarneh@cs.sfu.ca",
      "persona_firstname": "Ghassan",
      "persona_id": 10,
      "persona_lastname": "Hamarneh"
    }
  ],
  "categories": [],
  "comments": [],
  "date_submitted": "2005-12-29T06:10:32Z",
  "journals": [
    {
      "journal_id": 3,
      "journal_name": "The Insight Journal"
    }
  ],
  "license": "You are licensing your work to Kitware Inc. under the\nCreative Commons Attribution License Version 3.0.\n\nKitware Inc. agrees to the following:\n\nKitware is free\n * to copy, distribute, display, and perform the work\n * to make derivative works\n * to make commercial use of the work\n\nUnder the following conditions:\n\\\"by Attribution\\\" - Kitware must attribute the work in the manner specified by the author or licensor.\n\n * For any reuse or distribution, they must make clear to others the license terms of this work.\n * Any of these conditions can be waived if they get permission from the copyright holder.\n\nYour fair use and other rights are in no way affected by the above.\n\nThis is a human-readable summary of the Legal Code (the full license) available at\nhttp://creativecommons.org/licenses/by/3.0/legalcode",
  "publication_id": 66,
  "reviews": [
    {
      "author": {
        "author_email": "karthik.krshnan@gmail.com",
        "author_firstname": "Karthik",
        "author_id": 132,
        "author_lastname": "Krishnan"
      },
      "content": "<b>Compiling matitk.dll</b>\r\nI was able to compile the code with VS71 as the compiler. If the matlab version you have is old (for instance 6.5), you will need to get the <a href=\\\"http://www.mathworks.com/support/solutions/data/1-1BRI9.html?solution=1-1BRI9\\\">options file</a> for VS71.\r\n\r\nI made the suggested changes to the bin/win32/mexopts/msvc71opts.bat file. (setting ITKBIN, ITKSRC environment variables and adding the working directory to the list paths. <tt>path(path,\\\"c:/tmp/foo\\\")</tt>).\r\n\r\nI had two errors compiling the code, since the code was instantiating curvature flow filters etc on unsigned int images. The errors were trivial to remove. Below is the patch to remove the compiler errors and will be fixed in ITK CVS.\r\n\r\nRegarding the dll shipped with the paper, the permissions of the dll needs to have executable permission otherwise matlab fails to load the dll.\r\n\r\n<b>Testing</b>\r\n\r\nI was able to load the built in mri dataset and perform filtering etc in a jiffy. That was convenient.\r\n\r\n<b>Usability</b>\r\n\r\nTraditionally matlab has been a storehouse for well established image processing/ enhancement algorithms. There are several external analysis packages available such as LightSpeed, SPM etc.. I do not know of any packages that perform registration. ITK on the other hand has bleeding edge segmentation and registration algorithms along with basic image processing algorithms. \r\n\r\nA very useful thing to do will be to conveniently perform registration in ITK and continue with filtering and analysis in MATLAB, since MATLAB lacks registration algorithms. MATITK provides two registration algorithms, Demos and TPS. I tried out Demons and it seemed to work fine. It should probably supply a lot more registration algorithms. Also, there is no way to currently specify the origin or the images. For instance the fixed and moving images could be acquired in different reference frames.\r\n\r\nAny submission to MATLAB central ?\r\n\r\n\r\n<b>Inclusion in the toolkit</b>\r\n\r\nI propose the framework be included with InsightApplications. I am sure many in the academic community would find it useful.\r\n\r\n\r\nIndex: Algorithms/itkMinMaxCurvatureFlowFunction.txx\r\n===================================================================\r\nRCS file: /cvsroot/Insight/Insight/Code/Algorithms/itkMinMaxCurvatureFlowFunction.txx,v\r\nretrieving revision 1.23\r\ndiff -u -b -r1.23 itkMinMaxCurvatureFlowFunction.txx\r\n--- Algorithms/itkMinMaxCurvatureFlowFunction.txx\t13 Mar 2005 23:19:40 -0000\t1.23\r\n+++ Algorithms/itkMinMaxCurvatureFlowFunction.txx\t30 Jan 2006 16:08:14 -0000\r\n@@ -369,7 +369,7 @@\r\n {\r\n gradient[2] = -1.0;\r\n }\r\n- theta = acos( gradient[2] );\r\n+ theta = acos( (double)gradient[2] );\r\n \r\n if ( gradient[0] == 0 )\r\n {\r\n@@ -377,7 +377,7 @@\r\n }\r\n else\r\n {\r\n- phi = atan( gradient[1]/ gradient[0] );\r\n+ phi = atan( (double)gradient[1]/ (double)gradient[0] );\r\n }\r\n \r\n \r\nIndex: BasicFilters/itkSparseFieldLevelSetImageFilter.txx\r\n===================================================================\r\nRCS file: /cvsroot/Insight/Insight/Code/BasicFilters/itkSparseFieldLevelSetImageFilter.txx,v\r\nretrieving revision 1.36\r\ndiff -u -b -r1.36 itkSparseFieldLevelSetImageFilter.txx\r\n--- BasicFilters/itkSparseFieldLevelSetImageFilter.txx\t22 Dec 2004 15:18:23 -0000\t1.36\r\n+++ BasicFilters/itkSparseFieldLevelSetImageFilter.txx\t30 Jan 2006 16:08:14 -0000\r\n@@ -480,7 +480,7 @@\r\n { this->SetRMSChange(static_cast<double>(m_ValueZero)); }\r\n else\r\n {\r\n- this->SetRMSChange(static_cast<double>( vcl_sqrt(rms_change_accumulator / static_cast<ValueType>(counter)) ) );\r\n+ this->SetRMSChange(static_cast<double>( vcl_sqrt((double)(rms_change_accumulator / static_cast<ValueType>(counter)) )) );\r\n }\r\n }\r\n \r\n@@ -841,7 +841,7 @@\r\n length += dx_backward * dx_backward;\r\n }\r\n }\r\n- length = vcl_sqrt(length) + MIN_NORM;\r\n+ length = vcl_sqrt((double)length) + MIN_NORM;\r\n distance = shiftedIt.GetCenterPixel() / length;\r\n \r\n output->SetPixel( activeIt->m_Value , \r\n\r\n",
      "date": "01-30-2006",
      "review_id": 159
    }
  ],
  "revisions": [
    {
      "article": "bafkreihj32me2xpwlhiheg2nd2s56xops7ggwyfnuqb3tnw6o4okiefnyq",
      "citation_list": [
        {
          "doi": "10.1117/12.652628",
          "key": "ref1",
          "score": 111.47705,
          "unstructured": "\" MATLAB-ITK Interface for Medical Image Filtering, Segmentation, and Registration\"+Proceedings of SPIE Medical Imaging: Image Processing+2006+6144+135+V. Chu+V. Chu"
        }
      ],
      "dapp": null,
      "dataset": null,
      "doi": "10.54294/0g2b7o",
      "handle": "1926/155",
      "source_code": "bafybeiekw3vxhyobuylv6r7meo6gnnadthae3gu7ham3hsdosrvypwebdy",
      "source_code_git_ref": null
    }
  ],
  "source_code_git_repo": null,
  "submitted_by_author": {
    "author_email": "vwchu@sfu.ca",
    "author_firstname": "Vincent",
    "author_fullname": "Chu, Vincent",
    "author_id": 342,
    "author_institution": "Simon Fraser University",
    "author_lastname": "Chu"
  },
  "tags": [
    "MATLAB",
    "ITK",
    "Medical image analysis",
    "filtering",
    "segmentation",
    "registration"
  ],
  "title": "MATITK: EXTENDING MATLAB WITH ITK"
}