Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
ef6c010
ENH: Remove unused `USE_OPTION1` build option from Common.cmake
hjmjohnson Jan 15, 2026
b50370f
ENH: Replace `make_directory` with modern `file(MAKE_DIRECTORY)`
hjmjohnson Jan 14, 2026
4486245
ENH: Add conditional logic for ITK dependency based on USE_SYSTEM_ITK
hjmjohnson Jan 14, 2026
2f1c288
ENH: Specify minimum ITK version in CMake find_package commands
hjmjohnson Jan 14, 2026
f466c6d
STYLE: Remove redundant comment and adjust LaTeXWrapper.sh formatting
hjmjohnson Jan 15, 2026
bb25196
STYLE: Remove `dvips` option in LaTeX preamble
hjmjohnson Jan 15, 2026
bdbeb33
ENH: Add required modules needed for RunExamples
hjmjohnson Jan 14, 2026
2b63d1a
STYLE: Improve readability by adjusting line breaks in abstract sections
hjmjohnson Jan 14, 2026
c0b6a0c
STYLE: Use `\cos` in LaTeX equations for consistency
hjmjohnson Jan 15, 2026
fb42d1c
STYLE: Add braces around `\input` argument for consistency
hjmjohnson Jan 15, 2026
dcdfa2e
STYLE: Repace x with $times$ for better visualization
hjmjohnson Jan 14, 2026
c9e9bec
STYLE: Replace `\bf` with `\textbf`
hjmjohnson Jan 14, 2026
b524cad
ENH: Update to support latex2e modern recommendations
hjmjohnson Jan 14, 2026
3568e80
DOC: Add missing subsubsections for related to labels.
hjmjohnson Jan 15, 2026
215212c
STYLE: Add `%` to the end of section and subsection titles
hjmjohnson Jan 14, 2026
5046831
STYLE: Add `%` to \label and \index lines
hjmjohnson Jan 14, 2026
08de045
STYLE: remove spaces in front of `\footnote'
hjmjohnson Jan 14, 2026
b466f06
STYLE: Remove unnecessary spaces before `~` in LaTeX
hjmjohnson Jan 15, 2026
e701337
ENH: Use non-breaking space before references
hjmjohnson Jan 15, 2026
7bfa9a1
ENH: Fix matching parenthesis.
hjmjohnson Jan 15, 2026
b2b6355
ENH: Use explicit item enumeration rather than raw paragraph text
hjmjohnson Jan 15, 2026
60ef2a2
ENH: You should use \ldots to achieve an ellipsis.
hjmjohnson Jan 15, 2026
b605e4c
ENH: Fix quoting for compatibility with LaTeX
hjmjohnson Jan 15, 2026
40a655c
ENH: Add T1 font encoding to LaTeX preamble for improved typography
hjmjohnson Jan 15, 2026
d4d2894
STYLE: Remove unnecessary space before punctuation
hjmjohnson Jan 15, 2026
605053d
STYLE: Use `\code{}` for file extensions in LaTeX for consistency
hjmjohnson Jan 15, 2026
97e49da
STYLE: Remove redundant spaces before `\\` in LaTeX tables
hjmjohnson Jan 15, 2026
e5586fa
STYLE: Use `\enquote{}` for quoting in LaTeX for consistency
hjmjohnson Jan 15, 2026
7ea599d
ENH: Prevent line wrapping in LaTeX console and log outputs
hjmjohnson Jan 15, 2026
f7df7c2
STYLE: Replace `\hline` with `\toprule`, `\midrule`, and `\bottomrule…
hjmjohnson Jan 15, 2026
449532d
STYLE: Capitalize "Section" references in LaTeX for consistency
hjmjohnson Jan 15, 2026
40d3a1f
ENH: Add LaTeX linter script
hjmjohnson Jan 15, 2026
60d8b63
STYLE: Add `.chktexrc` to `.gitignore`
hjmjohnson Jan 15, 2026
6feafa5
ENH: Update ImageMagick dependency to version 6
hjmjohnson Jan 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/Utilities/.chktexrc
1 change: 0 additions & 1 deletion Common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ endif()
#-----------------------------------------------------------------------------
# Build option(s)
#-----------------------------------------------------------------------------
option(USE_OPTION1 "Build OPTION1" ON)

#-----------------------------------------------------------------------------
# Update CMake module path
Expand Down
3 changes: 2 additions & 1 deletion ITKSoftwareGuide.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ set(CMAKE_MODULE_PATH
)

#-----------------------------------------------------------------------------
find_package(ITK REQUIRED)
set(MINIMUM_ITK_VERSION 5)
find_package(ITK ${MINIMUM_ITK_VERSION} REQUIRED)
if(Slicer_BUILD_${PROJECT_NAME})
set(ITK_NO_IO_FACTORY_REGISTER_MANAGER 1) # Incorporate with Slicer nicely
endif()
Expand Down
6 changes: 3 additions & 3 deletions SoftwareGuide/Art/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
file(GLOB PNGandJPG_IMAGES *.jpg *.png)
file(GLOB EPS_IMAGES *.eps)

find_package(ImageMagick REQUIRED)
if(NOT IMAGEMAGICK_CONVERT_EXECUTABLE)
find_package(ImageMagick 6 COMPONENTS convert REQUIRED)
if(NOT ImageMagick_convert_EXECUTABLE)
message("ImageMagick convert utility was not found. Please pass to advanced mode and provide its full path")
endif()
# Convert an image from some file format to EPS for inclusion in Latex using
Expand All @@ -30,7 +30,7 @@ foreach(ImageFile ${PNGandJPG_IMAGES})
set(OutputEPSFile "${OutputEPSFilePath}/${ImageFileNoExt}.eps")
add_custom_command(
OUTPUT ${OutputEPSFile}
COMMAND ${IMAGEMAGICK_CONVERT_EXECUTABLE}
COMMAND ${ImageMagick_convert_EXECUTABLE}
${EPS_INPUT_CONVERT_FLAGS}
${ImageFile}
${EPS_OUTPUT_CONVERT_FLAGS}
Expand Down
2 changes: 1 addition & 1 deletion SoftwareGuide/Cover/Source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ cmake_policy(VERSION 3.10.2)

project( VWSegmentation )

find_package( ITK REQUIRED )
find_package( ITK 5 REQUIRED )
include( ${ITK_USE_FILE} )

set( operations
Expand Down
8 changes: 4 additions & 4 deletions SoftwareGuide/Examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ endforeach()
#
# First make a directory to store generated images
set(ART_GENERATED_FOLDER "${SoftwareGuide_BINARY_DIR}/Art/Generated" )
make_directory( "${ART_GENERATED_FOLDER}" )
file(MAKE_DIRECTORY "${ART_GENERATED_FOLDER}" )

#
# Rebuild the Software Guide figures
Expand All @@ -37,8 +37,8 @@ set(RUN_EXAMPLES_SCRIPT "${SoftwareGuide_SOURCE_DIR}/Examples/RunExamples.py" CA
# This is used to convert image formats
#
#include(${CMAKE_ROOT}/Modules/FindImageMagick.cmake)
find_package(ImageMagick REQUIRED)
if(NOT IMAGEMAGICK_CONVERT_EXECUTABLE)
find_package(ImageMagick 6 COMPONENTS convert REQUIRED)
if(NOT ImageMagick_convert_EXECUTABLE)
message("ImageMagick convert utility was not found. Please pass to advanced mode and provide its full path")
endif()

Expand Down Expand Up @@ -269,7 +269,7 @@ macro(CONVERT_INPUT_IMG SOME_IMG EPS_IMG IMAGEMAGICK_FLAGS)
if( NOT DEFINED \${EPS_IMG}_HAS_CUSTOM_COMMAND)
message(STATUS \"Converting \${SOME_IMG}\")
execute_process(
COMMAND \"${IMAGEMAGICK_CONVERT_EXECUTABLE}\" \${FLAGS} -quality 100 \${EPS_INPUT_CONVERT_FLAGS} \"\${SOME_IMG}\" \${EPS_OUTPUT_CONVERT_FLAGS} \"\${EPS_IMG}\"
COMMAND \"${ImageMagick_convert_EXECUTABLE}\" \${FLAGS} -quality 100 \${EPS_INPUT_CONVERT_FLAGS} \"\${SOME_IMG}\" \${EPS_OUTPUT_CONVERT_FLAGS} \"\${EPS_IMG}\"
OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/ConvertImagesToEPSOutput.txt
ERROR_FILE ${CMAKE_CURRENT_BINARY_DIR}/ConvertImagesToEPSError.txt
RESULT_VARIABLE _result
Expand Down
7 changes: 5 additions & 2 deletions SoftwareGuide/LaTeXWrapper.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
TEXINPUTS=$TEXINPUTS:${ITK_TEXINPUTS}
export TEXINPUTS

# NOTE: Run 3 times just to get all dependencies resolved.
${LATEX_COMPILER} -shell-escape "$@"
# Prevent console and log outputs from latex from wrapping at 80 characters.
export max_print_line=10000
export error_line=254
export half_error_line=238

${LATEX_COMPILER} -shell-escape "$@"
8 changes: 6 additions & 2 deletions SoftwareGuide/Latex/00-Preamble-Common.tex
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
\usepackage[T1]{fontenc}
\usepackage[dvips]{graphicx}
\usepackage{times}
\usepackage[table]{xcolor}
Expand All @@ -13,6 +14,9 @@
%\usepackage{siunitx}
\usepackage[papersize={7.5in,9.25in},margin=1in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}

\newcommand{\shelldblquotes}[1]{\textquotedbl{}#1\textquotedbl{}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Expand Down Expand Up @@ -94,7 +98,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifitkPrintedVersion
\usepackage[dvips,
\usepackage[
pdfencoding=auto,
psdextra,
pdfpagemode={UseOutlines},
Expand All @@ -104,7 +108,7 @@
colorlinks,linkcolor={black},citecolor={black},urlcolor={black},
]{hyperref}
\else
\usepackage[dvips,
\usepackage[
pdfencoding=auto,
psdextra,
pdfpagemode={UseOutlines},
Expand Down
2 changes: 1 addition & 1 deletion SoftwareGuide/Latex/01-PrintedPreamble-Book1.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\begin{minipage}[t][1.0cm][b]{\textwidth}
\begin{center}
Printed and produced in the United States of America.\\
\bf{ISBN 978-1-930934-35-1}
\textbf{ISBN 978-1-930934-35-1}
\end{center}
\end{minipage}
2 changes: 1 addition & 1 deletion SoftwareGuide/Latex/01-PrintedPreamble-Book2.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\begin{minipage}[t][1.0cm][b]{\textwidth}
\begin{center}
Printed and produced in the United States of America.\\
\bf{ISBN 978-1-930934-36-8}
\textbf{ISBN 978-1-930934-36-8}
\end{center}
\end{minipage}
3 changes: 2 additions & 1 deletion SoftwareGuide/Latex/02-Cover-Book2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
\chapter*{About the Cover}

The cover image consists of a photograph of ABS plastic anatomical objects
printed with a MakerBot Replicator 2X 3D printer. Mesh STL files were generated from the images with VTK.
printed with a \verb|MakerBot Replicator 2X 3D| printer.
Mesh STL files were generated from the images with VTK.

\begin{description}

Expand Down
8 changes: 4 additions & 4 deletions SoftwareGuide/Latex/03-Abstract-Common.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ \chapter*{Abstract}
\noindent
The National Library of Medicine Insight Segmentation and Registration Toolkit,
shortened as the Insight Toolkit \href{https://itk.org}{(ITK)}, is an
open-source software toolkit for performing registration and
segmentation. \emph{Segmentation} is the process of identifying and
open-source software toolkit for performing registration and segmentation.
\emph{Segmentation} is the process of identifying and
classifying data found in a digitally sampled
representation. Typically the sampled representation is an image
acquired from such medical instrumentation as CT or MRI
scanners. \emph{Registration} is the task of aligning or developing
acquired from such medical instrumentation as CT or MRI scanners.
\emph{Registration} is the task of aligning or developing
correspondences between data. For example, in the medical environment,
a CT scan may be aligned with a MRI scan in order to combine the
information contained in both.
Expand Down
49 changes: 24 additions & 25 deletions SoftwareGuide/Latex/04-Contributors.tex
Original file line number Diff line number Diff line change
Expand Up @@ -16,65 +16,64 @@ \chapter*{Contributors}
guide and their contributions.


{\bf Luis Ib\'{a}\~{n}ez} is principal author of this text.
\textbf{Luis Ib\'{a}\~{n}ez} is principal author of this text.
He assisted in the design and layout of the text, implemented the bulk of
the \LaTeX{} and CMake build process, and was responsible for the bulk of
the content. He also developed most of the example code found in the
\code{Insight/Examples} directory.

{\bf Will Schroeder} helped design and establish the organization
\textbf{Will Schroeder} helped design and establish the organization
of this text and the \code{Insight/Examples} directory. He is principal
content editor, and has authored several chapters.

{\bf Lydia Ng} authored the description for the registration framework
\textbf{Lydia Ng} authored the description for the registration framework
and its components, the section on the multiresolution framework, and
the section on deformable registration methods. She also edited the
section on the resampling image filter and the sections on various
level set segmentation algorithms.

{\bf Joshua Cates} authored the iterators chapter and the text and examples
\textbf{Joshua Cates} authored the iterators chapter and the text and examples
describing watershed segmentation. He also co-authored the level-set
segmentation material.

{\bf Jisung Kim} authored the chapter on the statistics framework.
\textbf{Jisung Kim} authored the chapter on the statistics framework.

{\bf Julien Jomier} contributed the chapter on spatial objects and examples on
\textbf{Julien Jomier} contributed the chapter on spatial objects and examples on
model-based registration using spatial objects.

{\bf Karthik Krishnan} reconfigured the process for automatically generating
\textbf{Karthik Krishnan} reconfigured the process for automatically generating
images from all the examples. Added a large number of new examples and updated
the Filtering and Segmentation chapters for the second edition.

{\bf Stephen Aylward} contributed material describing spatial objects and
\textbf{Stephen Aylward} contributed material describing spatial objects and
their application.

{\bf Tessa Sundaram} contributed the section on deformable registration using
\textbf{Tessa Sundaram} contributed the section on deformable registration using
the finite element method.

{\bf Mark Foskey} contributed the examples on the
\textbf{Mark Foskey} contributed the examples on the
\doxygen{AutomaticTopologyMeshSource} class.

{\bf Mathieu Malaterre} contributed the entire section on the description and
\textbf{Mathieu Malaterre} contributed the entire section on the description and
use of DICOM readers and writers based on the GDCM library. He also contributed
an example on the use of the VTKImageIO class.

{\bf Gavin Baker} contributed the section on how to write composite filters.
\textbf{Gavin Baker} contributed the section on how to write composite filters.
Also known as minipipeline filters.

Since the software guide is generated in part from the ITK source code
itself, many ITK developers have been involved in updating and
extending the ITK documentation. These include {\bf David Doria},
{\bf Bradley Lowekamp}, {\bf Mark Foskey}, {\bf Ga\"{e}tan Lehmann},
{\bf Andreas Schuh}, {\bf Tom Vercauteren}, {\bf Cory Quammen}, {\bf Daniel Blezek},
{\bf Paul Hughett}, {\bf Matthew McCormick}, {\bf Josh Cates}, {\bf Arnaud Gelas},
{\bf Jim Miller}, {\bf Brad King}, {\bf Gabe Hart}, {\bf Hans Johnson}.

{\bf Hans Johnson}, {\bf Kent Williams}, {\bf Constantine Zakkaroff}, {\bf
Xiaoxiao Liu}, {\bf Ali Ghayoor}, and {\bf Matthew McCormick} updated
extending the ITK documentation. These include \textbf{David Doria},
\textbf{Bradley Lowekamp}, \textbf{Mark Foskey}, \textbf{Ga\"{e}tan Lehmann},
\textbf{Andreas Schuh}, \textbf{Tom Vercauteren}, \textbf{Cory Quammen}, \textbf{Daniel Blezek},
\textbf{Paul Hughett}, \textbf{Matthew McCormick}, \textbf{Josh Cates}, \textbf{Arnaud Gelas},
\textbf{Jim Miller}, \textbf{Brad King}, \textbf{Gabe Hart}, \textbf{Hans Johnson}.

\textbf{Hans Johnson}, \textbf{Kent Williams}, \textbf{Constantine Zakkaroff}, \textbf{Xiaoxiao Liu}, \textbf{Ali Ghayoor}, and \textbf{Matthew McCormick} updated
the documentation for the initial ITK Version 4 release.

{\bf Luis Ib\'{a}\~{n}ez} and {\bf S\'{e}bastien Barr\'{e}} designed the
original Book 1 cover. {\bf Xiaoxiao Liu}, {\bf Bill Lorensen},
{\bf Luis Ib\'{a}\~{n}ez}, and {\bf Matthew McCormick} created the 3D printed anatomical
objects that were photographed by {\bf S\'{e}bastien Barr\'{e}} for the Book 2 cover.
{\bf Steve Jordan} designed the layout of the covers.
\textbf{Luis Ib\'{a}\~{n}ez} and \textbf{S\'{e}bastien Barr\'{e}} designed the
original Book 1 cover. \textbf{Xiaoxiao Liu}, \textbf{Bill Lorensen},
\textbf{Luis Ib\'{a}\~{n}ez}, and \textbf{Matthew McCormick} created the 3D printed anatomical
objects that were photographed by \textbf{S\'{e}bastien Barr\'{e}} for the Book 2 cover.
\textbf{Steve Jordan} designed the layout of the covers.
Loading