ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/man/man1/rcrop.1
Revision: 1.3
Committed: Tue Mar 15 17:19:52 2022 UTC (3 years, 1 month ago) by greg
Branch: MAIN
Changes since 1.2: +19 -1 lines
Log Message:
docs(rcrop): Added comment about header requirements and added rmtxop example

File Contents

# Content
1 .\" RCSid "$Id: rcrop.1,v 1.2 2022/03/15 04:41:45 greg Exp $"
2 .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 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 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 .PP
50 The
51 .I rcrop
52 tool also works on encoded normal vector files produced by
53 .I rcode_norm(1)
54 and encoded depth files produced by
55 .I rcode_depth(1).
56 However, it is not able to crop identifier files produced by
57 .I rcode_ident(1).
58 .PP
59 If no input file is given, data will be taken from the standard input.
60 If no output file is specified, data will be copied to the standard output.
61 All matrix formats are supported, including text (ASCII), binary float
62 and double.
63 Data is copied verbatim, i.e., there is no internal conversion to
64 another representation, although white space may change in text files.
65 .SH EXAMPLES
66 To crop a matrix down to 15 rows by 19 columns,
67 starting at row 10 and column 12:
68 .IP "" .2i
69 rcrop 10 12 15 19 input.mtx > output.mtx
70 .PP
71 To extract column 35 from a matrix:
72 .IP "" .2i
73 rcrop 0 35 0 1 orig.mtx > col35.mtx
74 .PP
75 To crop a picture to (X by Y) = (1500 by 1000),
76 starting from upper-left corner:
77 .IP "" .2i
78 rcrop 0 0 1000 1500 orig.hdr cropped.hdr
79 .PP
80 Two ways of computing the inner product of row 15 in matrix 1 by
81 column 27 in matrix 2 and extracting the result without a header,
82 the second command being more efficient:
83 .IP "" .2i
84 rmtxop -fa mat1.mtx mat2.mtx | rcrop 15 27 1 1 | getinfo -
85 .IP "" .2i
86 rmtxop -fa '!rcrop 15 0 1 0 mat1.mtx' '!rcrop 0 27 0 1 mat2.mtx' | getinfo -
87 .SH AUTHOR
88 Greg Ward
89 .SH "SEE ALSO"
90 evalglare(1), pcompos(1), rcalc(1), rcode_depth(1),
91 rcode_ident(1), rcode_norm(1), rcollate(1), rfluxmtx(1), rmtxop(1)