Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / image-processing.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2017 John Darrington <jmd@gnu.org>
3 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
4 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
5 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
6 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
7 ;;;
8 ;;; This file is part of GNU Guix.
9 ;;;
10 ;;; GNU Guix is free software; you can redistribute it and/or modify it
11 ;;; under the terms of the GNU General Public License as published by
12 ;;; the Free Software Foundation; either version 3 of the License, or (at
13 ;;; your option) any later version.
14 ;;;
15 ;;; GNU Guix is distributed in the hope that it will be useful, but
16 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ;;; GNU General Public License for more details.
19 ;;;
20 ;;; You should have received a copy of the GNU General Public License
21 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23 (define-module (gnu packages image-processing)
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix packages)
26 #:use-module (guix utils)
27 #:use-module (guix download)
28 #:use-module (guix build-system cmake)
29 #:use-module (guix build-system gnu)
30 #:use-module (gnu packages)
31 #:use-module (gnu packages algebra)
32 #:use-module (gnu packages boost)
33 #:use-module (gnu packages compression)
34 #:use-module (gnu packages documentation)
35 #:use-module (gnu packages fontutils)
36 #:use-module (gnu packages gl)
37 #:use-module (gnu packages gnome)
38 #:use-module (gnu packages graphics)
39 #:use-module (gnu packages graphviz)
40 #:use-module (gnu packages image)
41 #:use-module (gnu packages maths)
42 #:use-module (gnu packages perl)
43 #:use-module (gnu packages pkg-config)
44 #:use-module (gnu packages python)
45 #:use-module (gnu packages serialization)
46 #:use-module (gnu packages xiph)
47 #:use-module (gnu packages xml)
48 #:use-module (gnu packages xorg))
49
50 ;; We use the latest snapshot of this package because the latest release is
51 ;; from 2011 and has known vulnerabilities that cannot easily be fixed by
52 ;; applying patches.
53 (define-public dcmtk
54 (package
55 (name "dcmtk")
56 (version "3.6.1_20170228")
57 (source (origin
58 (method url-fetch)
59 (uri (string-append "ftp://dicom.offis.de/pub/dicom/offis/"
60 "software/dcmtk/snapshot/dcmtk-"
61 version ".tar.gz"))
62 (sha256
63 (base32
64 "04cwfx8yrscqcd59mxk2fh6314ckayi9cp68iql5a57pf2pg5qld"))))
65 (build-system gnu-build-system)
66 (inputs
67 `(("libtiff" ,libtiff)
68 ("libpng" ,libpng)
69 ("doxygen" ,doxygen)
70 ("zlib" ,zlib)))
71 (native-inputs
72 `(("perl" ,perl)))
73 (home-page "http://dcmtk.org")
74 (synopsis "Libraries and programs implementing parts of the DICOM standard")
75 (description "DCMTK is a collection of libraries and applications
76 implementing large parts the DICOM standard. It includes software for
77 examining, constructing and converting DICOM image files, handling offline
78 media, sending and receiving images over a network connection, as well as
79 demonstrative image storage and worklist servers.")
80 (license (license:fsf-free
81 "file://COPYRIGHT"
82 "A union of the Apache 2.0 licence and various non-copyleft
83 licences similar to the Modified BSD licence."))))
84
85 (define-public mia
86 (package
87 (name "mia")
88 (version "2.4.4")
89 (source (origin
90 (method url-fetch)
91 (uri (string-append "mirror://sourceforge/mia/mia/"
92 (version-major+minor version)
93 "/mia-" version ".tar.xz"))
94 (sha256
95 (base32
96 "124gvf8nkls59mlnx8ynq00n9zrah7a54gsywafx7qmfr0y95ra7"))))
97 (build-system cmake-build-system)
98 (arguments
99 `(#:configure-flags
100 (list "-DMIA_CREATE_NIPYPE_INTERFACES=0"
101 "-DCMAKE_CXX_FLAGS=-fpermissive")))
102 (inputs
103 `(("boost" ,boost)
104 ("dcmtk" ,dcmtk)
105 ("doxygen" ,doxygen)
106 ("eigen" ,eigen)
107 ("fftw" ,fftw)
108 ("fftwf" ,fftwf)
109 ("gsl" ,gsl)
110 ("gts" ,gts)
111 ("hdf5" ,hdf5)
112 ("itpp" ,itpp)
113 ("libjpeg" ,libjpeg)
114 ("libpng" ,libpng)
115 ("libtiff" ,libtiff)
116 ("libxml" ,libxml2)
117 ("libxml++" ,libxml++)
118 ("maxflow" ,maxflow)
119 ("niftilib" ,niftilib)
120 ("nlopt" ,nlopt)
121 ("openexr" ,openexr)
122 ("python-lxml" ,python2-lxml)
123 ("vtk" ,vtk)))
124 (native-inputs
125 `(("pkg-config" ,pkg-config)
126 ("python" ,python-2)))
127 (home-page "http://mia.sourceforge.net")
128 (synopsis "Toolkit for gray scale medical image analysis")
129 (description "MIA provides a combination of command line tools, plug-ins,
130 and libraries that make it possible run image processing tasks interactively
131 in a command shell and to prototype using the shell's scripting language. It
132 is built around a plug-in structure that makes it easy to add functionality
133 without compromising the original code base and it makes use of a wide variety
134 of external libraries that provide additional functionality.")
135 (license license:gpl3+)))
136
137 (define-public vtk
138 (package
139 (name "vtk")
140 (version "7.1.0")
141 (source (origin
142 (method url-fetch)
143 (uri (string-append "http://www.vtk.org/files/release/"
144 (version-major+minor version)
145 "/VTK-" version ".tar.gz"))
146 (sha256
147 (base32
148 "0yj96z58haan77gzilnqp7xpf8hg5jk11a3jx55p2ksd400s0gjz"))))
149 (build-system cmake-build-system)
150 (arguments
151 '(#:build-type "Release" ;Build without '-g' to save space.
152 ;; -DVTK_USE_SYSTEM_NETCDF:BOOL=TRUE requires netcdf_cxx
153 #:configure-flags '("-DVTK_USE_SYSTEM_EXPAT:BOOL=TRUE"
154 "-DVTK_USE_SYSTEM_FREETYPE:BOOL=TRUE"
155 "-DVTK_USE_SYSTEM_HDF5:BOOL=TRUE"
156 "-DVTK_USE_SYSTEM_JPEG:BOOL=TRUE"
157 "-DVTK_USE_SYSTEM_JSONCPP:BOOL=TRUE"
158 "-DVTK_USE_SYSTEM_LIBXML2:BOOL=TRUE"
159 "-DVTK_USE_SYSTEM_OGGTHEORA:BOOL=TRUE"
160 "-DVTK_USE_SYSTEM_PNG:BOOL=TRUE"
161 "-DVTK_USE_SYSTEM_TIFF:BOOL=TRUE"
162 "-DVTK_USE_SYSTEM_ZLIB:BOOL=TRUE")
163 #:tests? #f)) ;XXX: no "test" target
164 (inputs
165 `(("libXt" ,libxt)
166 ("xproto" ,xproto)
167 ("libX11" ,libx11)
168 ("libxml2" ,libxml2)
169 ("mesa" ,mesa)
170 ("glu" ,glu)
171 ("expat" ,expat)
172 ("freetype" ,freetype)
173 ("hdf5" ,hdf5)
174 ("jpeg" ,libjpeg)
175 ("jsoncpp" ,jsoncpp)
176 ("libogg" ,libogg)
177 ("libtheora" ,libtheora)
178 ("png" ,libpng)
179 ("tiff" ,libtiff)
180 ("zlib" ,zlib)))
181 (home-page "http://www.vtk.org/")
182 (synopsis "Libraries for 3D computer graphics")
183 (description
184 "The Visualization Toolkit (VTK) is a C++ library for 3D computer graphics,
185 image processing and visualization. It supports a wide variety of
186 visualization algorithms including: scalar, vector, tensor, texture, and
187 volumetric methods; and advanced modeling techniques such as: implicit
188 modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay
189 triangulation. VTK has an extensive information visualization framework, has
190 a suite of 3D interaction widgets, supports parallel processing, and
191 integrates with various databases on GUI toolkits such as Qt and Tk.")
192 (license license:bsd-3)))