1 |
greg |
1.6 |
.\" RCSid "$Id: rcrop.1,v 1.5 2022/03/17 17:08:27 greg Exp $" |
2 |
greg |
1.1 |
.TH RCROP 1 3/14/2022 RADIANCE |
3 |
|
|
.SH NAME |
4 |
|
|
rcrop - crop RADIANCE matrix or picture |
5 |
|
|
.SH SYNOPSIS |
6 |
|
|
.B "rcrop row0 col0 nrows ncols" |
7 |
|
|
[ |
8 |
|
|
.B input |
9 |
|
|
[ |
10 |
|
|
.B output |
11 |
|
|
] |
12 |
|
|
] |
13 |
|
|
.SH DESCRIPTION |
14 |
|
|
.I Rcrop |
15 |
|
|
copies the indicated section of a matrix or RADIANCE picture. |
16 |
|
|
The four required arguments are the initial row (scanline) to copy, |
17 |
|
|
the initial column, the number of rows to copy, and the number of columns |
18 |
|
|
to include per row. |
19 |
|
|
Note that rows are numbered from 0 at the top of a matrix or picture, |
20 |
|
|
and columns are changing fastest in the input, which can have any number |
21 |
|
|
of components per matrix element. |
22 |
|
|
.PP |
23 |
greg |
1.3 |
The input must have a valid header, including dimensions and format, |
24 |
|
|
and a header will always be produced. |
25 |
|
|
This is similar behavior to |
26 |
|
|
.I rmtxop(1). |
27 |
|
|
If the input header is missing, one can usually be added with an |
28 |
|
|
appropriate call to |
29 |
|
|
.I rcollate(1). |
30 |
|
|
If an output header is not desired, it can be removed using |
31 |
|
|
.I getinfo(1). |
32 |
|
|
.PP |
33 |
greg |
1.1 |
One cannot specify crop boundaries outside the matrix dimension limits. |
34 |
|
|
If a 0 value is specified for the number of rows to copy, then all rows |
35 |
|
|
will be copied, starting from row0. |
36 |
|
|
Similarly, a 0 value for the number of columns to copy implies all |
37 |
|
|
columns >= col0 will be copied. |
38 |
|
|
.PP |
39 |
|
|
Using |
40 |
|
|
.I rcrop |
41 |
|
|
on a RADIANCE picture rather than |
42 |
|
|
.I pcompos(1) |
43 |
|
|
corrects the view parameters if present, |
44 |
|
|
and preserves the exposure in a way that is compatible with |
45 |
|
|
.I evalglare(1). |
46 |
|
|
However, one must remember that rows correspond to Y |
47 |
|
|
coordinates, and the orientation is reversed from a standard |
48 |
|
|
picture, where Y=0 is the bottom scanline. |
49 |
greg |
1.6 |
Spectral pictures, as might be produced by |
50 |
|
|
.I rtrace(1) |
51 |
|
|
or |
52 |
|
|
.I rfluxmtx(1), |
53 |
|
|
are also supported. |
54 |
greg |
1.1 |
.PP |
55 |
greg |
1.5 |
All matrix formats are supported, including text (ASCII), binary float |
56 |
|
|
and double. |
57 |
greg |
1.2 |
The |
58 |
|
|
.I rcrop |
59 |
|
|
tool also works on encoded normal vector files produced by |
60 |
|
|
.I rcode_norm(1) |
61 |
|
|
and encoded depth files produced by |
62 |
|
|
.I rcode_depth(1). |
63 |
greg |
1.5 |
Data is copied verbatim, i.e., there is no internal conversion to |
64 |
|
|
another representation, although white space may change in text files. |
65 |
greg |
1.2 |
.PP |
66 |
greg |
1.1 |
If no input file is given, data will be taken from the standard input. |
67 |
|
|
If no output file is specified, data will be copied to the standard output. |
68 |
|
|
.SH EXAMPLES |
69 |
|
|
To crop a matrix down to 15 rows by 19 columns, |
70 |
|
|
starting at row 10 and column 12: |
71 |
|
|
.IP "" .2i |
72 |
|
|
rcrop 10 12 15 19 input.mtx > output.mtx |
73 |
|
|
.PP |
74 |
|
|
To extract column 35 from a matrix: |
75 |
|
|
.IP "" .2i |
76 |
|
|
rcrop 0 35 0 1 orig.mtx > col35.mtx |
77 |
|
|
.PP |
78 |
|
|
To crop a picture to (X by Y) = (1500 by 1000), |
79 |
|
|
starting from upper-left corner: |
80 |
|
|
.IP "" .2i |
81 |
|
|
rcrop 0 0 1000 1500 orig.hdr cropped.hdr |
82 |
greg |
1.3 |
.PP |
83 |
|
|
Two ways of computing the inner product of row 15 in matrix 1 by |
84 |
|
|
column 27 in matrix 2 and extracting the result without a header, |
85 |
|
|
the second command being more efficient: |
86 |
|
|
.IP "" .2i |
87 |
|
|
rmtxop -fa mat1.mtx mat2.mtx | rcrop 15 27 1 1 | getinfo - |
88 |
|
|
.IP "" .2i |
89 |
|
|
rmtxop -fa '!rcrop 15 0 1 0 mat1.mtx' '!rcrop 0 27 0 1 mat2.mtx' | getinfo - |
90 |
greg |
1.1 |
.SH AUTHOR |
91 |
|
|
Greg Ward |
92 |
|
|
.SH "SEE ALSO" |
93 |
greg |
1.6 |
evalglare(1), pcompos(1), rcalc(1), rcode_depth(1), rcode_norm(1), |
94 |
|
|
rcollate(1), rfluxmtx(1), rmtxop(1), rsplit(1), rtrace(1) |