annotate doc/interpreter/image.txi @ 8817:03b7f618ab3d

include docstrings for new functions in the manual
author John W. Eaton <jwe@octave.org>
date Thu, 19 Feb 2009 15:39:19 -0500
parents 67a632417879
children eb63fbe60fab
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6778
083721ae3dfa [project @ 2007-07-18 17:03:10 by jwe]
jwe
parents: 6535
diff changeset
1 @c Copyright (C) 1996, 1997, 2007 John W. Eaton
7018
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
2 @c
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
3 @c This file is part of Octave.
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
4 @c
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
5 @c Octave is free software; you can redistribute it and/or modify it
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
6 @c under the terms of the GNU General Public License as published by the
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
7 @c Free Software Foundation; either version 3 of the License, or (at
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
8 @c your option) any later version.
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
9 @c
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
10 @c Octave is distributed in the hope that it will be useful, but WITHOUT
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
13 @c for more details.
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
14 @c
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
15 @c You should have received a copy of the GNU General Public License
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
16 @c along with Octave; see the file COPYING. If not, see
fd42779a8428 [project @ 2007-10-13 00:52:12 by jwe]
jwe
parents: 6788
diff changeset
17 @c <http://www.gnu.org/licenses/>.
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
18
4167
aae05d51353c [project @ 2002-11-12 02:52:50 by jwe]
jwe
parents: 3803
diff changeset
19 @node Image Processing
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
20 @chapter Image Processing
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
21
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
22 Since an image basically is a matrix Octave is a very powerful
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
23 environment for processing and analysing images. To illustrate
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
24 how easy it is to do image processing in Octave, the following
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
25 example will load an image, smooth it by a 5-by-5 averaging filter,
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
26 and compute the gradient of the smoothed image.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
27
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
28 @example
8148
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
29 I = imread ("myimage.jpg");
6535
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
30 S = conv2 (I, ones (5, 5) / 25, "same");
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
31 [Dx, Dy] = gradient (S);
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
32 @end example
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
33
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
34 @noindent
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
35 In this example @code{S} contains the smoothed image, and @code{Dx}
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
36 and @code{Dy} contains the partial spatial derivatives of the image.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
37
6535
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
38 @menu
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
39 * Loading and Saving Images::
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
40 * Displaying Images::
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
41 * Representing Images::
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
42 * Plotting on top of Images::
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
43 * Color Conversion::
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
44 @end menu
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
45
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
46 @node Loading and Saving Images
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
47 @section Loading and Saving Images
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
48
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
49 The first step in most image processing tasks is to load an image
8148
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
50 into Octave. This is done using the @code{imread} function, which uses the
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
51 @code{GraphicsMagick} library for reading. This means a vast number of image
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
52 formats is supported. The @code{imwrite} function is the corresponding function
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
53 for writing images to the disk.
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
54
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
55 In summary, most image processing code will follow the structure of this code
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
56
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
57 @example
8148
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
58 I = imread ("my_input_image.img");
6535
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
59 J = process_my_image (I);
8148
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
60 imwrite ("my_output_image.img", J);
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
61 @end example
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
62
8148
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
63 @DOCSTRING(imread)
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
64
8148
213dd524f96b Improve documentation for image I/O.
sh@sh-laptop
parents: 8144
diff changeset
65 @DOCSTRING(imwrite)
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
66
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
67 @DOCSTRING(IMAGE_PATH)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
68
8144
01fac748b680 Add the 'imfinfo' function for reading image file information.
sh@sh-laptop
parents: 7984
diff changeset
69 It is possible to get information about an image file on disk, without actually
01fac748b680 Add the 'imfinfo' function for reading image file information.
sh@sh-laptop
parents: 7984
diff changeset
70 reading in into Octave. This is done using the @code{imfinfo} function which
01fac748b680 Add the 'imfinfo' function for reading image file information.
sh@sh-laptop
parents: 7984
diff changeset
71 provides read access to many of the parameters stored in the header of the image
01fac748b680 Add the 'imfinfo' function for reading image file information.
sh@sh-laptop
parents: 7984
diff changeset
72 file.
01fac748b680 Add the 'imfinfo' function for reading image file information.
sh@sh-laptop
parents: 7984
diff changeset
73
01fac748b680 Add the 'imfinfo' function for reading image file information.
sh@sh-laptop
parents: 7984
diff changeset
74 @DOCSTRING(imfinfo)
01fac748b680 Add the 'imfinfo' function for reading image file information.
sh@sh-laptop
parents: 7984
diff changeset
75
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
76 @node Displaying Images
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
77 @section Displaying Images
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
78
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
79 A natural part of image processing is visualization of an image.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
80 The most basic function for this is the @code{imshow} function that
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
81 shows the image given in the first input argument. This function uses
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
82 an external program to show the image. If gnuplot 4.2 or later is
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
83 available it will be used to display the image, otherwise the
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
84 @code{display}, @code{xv}, or @code{xloadimage} program is used. The
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
85 actual program can be selected with the @code{image_viewer} function.
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
86
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
87 @DOCSTRING(imshow)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
88
3373
36405da8e173 [project @ 1999-11-23 20:54:17 by jwe]
jwe
parents: 3294
diff changeset
89 @DOCSTRING(image)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
90
3373
36405da8e173 [project @ 1999-11-23 20:54:17 by jwe]
jwe
parents: 3294
diff changeset
91 @DOCSTRING(imagesc)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
92
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
93 @DOCSTRING(image_viewer)
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
94
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
95 @node Representing Images
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
96 @section Representing Images
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
97
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
98 In general Octave supports four different kinds of images, gray-scale
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
99 images, RGB images, binary images, and indexed images. A gray-scale
6535
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
100 image is represented with an M-by-N matrix in which each
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
101 element corresponds to the intensity of a pixel. An RGB image is
8325
b93ac0586e4b spelling corrections
Brian Gough<bjg@network-theory.co.uk>
parents: 8148
diff changeset
102 represented with an M-by-N-by-3 array where each
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
103 3-vector corresponds to the red, green, and blue intensities of each
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
104 pixel.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
105
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
106 The actual meaning of the value of a pixel in a gray-scale or RGB
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
107 image depends on the class of the matrix. If the matrix is of class
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
108 @code{double} pixel intensities are between 0 and 1, if it is of class
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
109 @code{uint8} intensities are between 0 and 255, and if it is of class
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
110 @code{uint16} intensities are between 0 and 65535.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
111
8347
fa78cb8d8a5c corrections for typos
Brian Gough<bjg@network-theory.co.uk>
parents: 8325
diff changeset
112 A binary image is an M-by-N matrix of class @code{logical}.
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
113 A pixel in a binary image is black if it is @code{false} and white
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
114 if it is @code{true}.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
115
6535
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
116 An indexed image consists of an M-by-N matrix of integers
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
117 and a C-by-3 color map. Each integer corresponds to an
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
118 index in the color map, and each row in the color map corresponds to
8347
fa78cb8d8a5c corrections for typos
Brian Gough<bjg@network-theory.co.uk>
parents: 8325
diff changeset
119 an RGB color. The color map must be of class @code{double} with values
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
120 between 0 and 1.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
121
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
122 @DOCSTRING(gray2ind)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
123
3373
36405da8e173 [project @ 1999-11-23 20:54:17 by jwe]
jwe
parents: 3294
diff changeset
124 @DOCSTRING(ind2gray)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
125
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
126 @DOCSTRING(rgb2ind)
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
127
3373
36405da8e173 [project @ 1999-11-23 20:54:17 by jwe]
jwe
parents: 3294
diff changeset
128 @DOCSTRING(ind2rgb)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
129
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
130 @DOCSTRING(colormap)
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
131
8539
67a632417879 image.txi: @DOCSTRING for brighten
John W. Eaton <jwe@octave.org>
parents: 8347
diff changeset
132 @DOCSTRING(brighten)
67a632417879 image.txi: @DOCSTRING for brighten
John W. Eaton <jwe@octave.org>
parents: 8347
diff changeset
133
6788
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
134 @DOCSTRING(autumn)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
135
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
136 @DOCSTRING(bone)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
137
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
138 @DOCSTRING(cool)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
139
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
140 @DOCSTRING(copper)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
141
8817
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8539
diff changeset
142 @DOCSTRING(flag)
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8539
diff changeset
143
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
144 @DOCSTRING(gray)
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
145
6788
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
146 @DOCSTRING(hot)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
147
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
148 @DOCSTRING(hsv)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
149
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
150 @DOCSTRING(jet)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
151
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
152 @DOCSTRING(ocean)
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
153
6788
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
154 @DOCSTRING(pink)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
155
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
156 @DOCSTRING(prism)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
157
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
158 @DOCSTRING(rainbow)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
159
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
160 @DOCSTRING(spring)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
161
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
162 @DOCSTRING(summer)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
163
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
164 @DOCSTRING(white)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
165
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
166 @DOCSTRING(winter)
c81a0f3f5a82 [project @ 2007-07-23 22:05:29 by dbateman]
dbateman
parents: 6778
diff changeset
167
7984
bbaa5d7d0143 Some documentation updates
David Bateman <dbateman@free.fr>
parents: 7189
diff changeset
168 @DOCSTRING(contrast)
bbaa5d7d0143 Some documentation updates
David Bateman <dbateman@free.fr>
parents: 7189
diff changeset
169
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7018
diff changeset
170 An additional colormap is @code{gmap40}. This code map contains only
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7018
diff changeset
171 colors with integer values of the red, green and blue components. This
8347
fa78cb8d8a5c corrections for typos
Brian Gough<bjg@network-theory.co.uk>
parents: 8325
diff changeset
172 is a workaround for a limitation of gnuplot 4.0, that does not allow the color of
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7018
diff changeset
173 line or patch objects to be set, and so @code{gmap40} is useful for
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7018
diff changeset
174 gnuplot 4.0 users, and in particular in conjunction with the @var{bar},
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7018
diff changeset
175 @var{barh} or @var{contour} functions.
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7018
diff changeset
176
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7018
diff changeset
177 @DOCSTRING(gmap40)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7018
diff changeset
178
8817
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8539
diff changeset
179 You may use the @code{spinmap} function to cycle through the colors in
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8539
diff changeset
180 the current colormap, displaying the changes for the current figure.
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8539
diff changeset
181
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8539
diff changeset
182 @DOCSTRING(spinmap)
03b7f618ab3d include docstrings for new functions in the manual
John W. Eaton <jwe@octave.org>
parents: 8539
diff changeset
183
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
184 @node Plotting on top of Images
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
185 @section Plotting on top of Images
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
186
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
187 If gnuplot is being used to display images it is possible to plot on
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
188 top of images. Since an image is a matrix it is indexed by row and
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
189 column values. The plotting system is, however, based on the
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
190 traditional @math{(x, y)} system. To minimize the difference between
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
191 the two systems Octave places the origin of the coordinate system in
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
192 the point corresponding to the pixel at @math{(1, 1)}. So, to plot
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
193 points given by row and column values on top of an image, one should
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
194 simply call @code{plot} with the column values as the first argument
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
195 and the row values as the second. As an example the following code
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
196 generates an image with random intensities between 0 and 1, and shows
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
197 the image with red circles over pixels with an intensity above
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
198 @math{0.99}.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
199
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
200 @example
6535
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
201 I = rand (100, 100);
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
202 [row, col] = find (I > 0.99);
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
203 hold ("on");
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
204 imshow (I);
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
205 plot (col, row, "ro");
3ef1aa12f04c [project @ 2007-04-18 16:17:25 by jwe]
jwe
parents: 6529
diff changeset
206 hold ("off");
6529
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
207 @end example
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
208
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
209 @node Color Conversion
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
210 @section Color Conversion
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
211
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
212 Octave supports conversion from the RGB color system to NTSC and HSV
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
213 and vice versa.
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
214
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
215 @DOCSTRING(rgb2hsv)
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
216
853f99e292ec [project @ 2007-04-16 21:29:03 by jwe]
jwe
parents: 6502
diff changeset
217 @DOCSTRING(hsv2rgb)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
218
3373
36405da8e173 [project @ 1999-11-23 20:54:17 by jwe]
jwe
parents: 3294
diff changeset
219 @DOCSTRING(rgb2ntsc)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
220
3373
36405da8e173 [project @ 1999-11-23 20:54:17 by jwe]
jwe
parents: 3294
diff changeset
221 @DOCSTRING(ntsc2rgb)
3294
bfe1573bd2ae [project @ 1999-10-19 10:06:07 by jwe]
jwe
parents:
diff changeset
222
3803
63c75bc3db82 [project @ 2001-02-28 08:24:40 by jwe]
jwe
parents: 3373
diff changeset
223