ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/man/man1/rcrop.1
Revision: 1.9
Committed: Fri May 17 20:50:57 2024 UTC (11 months, 2 weeks ago) by greg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.8: +3 -1 lines
Log Message:
feat(rcrop): Negative counts for #rows or #columns cut from the ends

File Contents

# Content
1 .\" RCSid "$Id: rcrop.1,v 1.8 2023/12/12 16:31: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 A negative count for the number of rows or columns cuts the
39 corresponding amount off the end(s).
40 .PP
41 Using
42 .I rcrop
43 on a RADIANCE picture rather than
44 .I pcompos(1)
45 corrects the view parameters if present,
46 and preserves the exposure in a way that is compatible with
47 .I evalglare(1).
48 However, one must remember that rows correspond to Y
49 coordinates, and the orientation is reversed from a standard
50 picture, where Y=0 is the bottom scanline.
51 Spectral pictures, as might be produced by
52 .I rtrace(1)
53 or
54 .I rfluxmtx(1),
55 are also supported.
56 .PP
57 All matrix formats are supported, including text (ASCII), binary float
58 and double.
59 The
60 .I rcrop
61 tool also works on encoded normal vector files produced by
62 .I rcode_norm(1)
63 and encoded depth files produced by
64 .I rcode_depth(1).
65 Data is copied verbatim, i.e., there is no internal conversion to
66 another representation, although white space may change in text files.
67 .PP
68 If no input file is given, data will be taken from the standard input.
69 If no output file is specified, data will be copied to the standard output.
70 .SH EXAMPLES
71 To crop a matrix down to 15 rows by 19 columns,
72 starting at row 10 and column 12:
73 .IP "" .2i
74 rcrop 10 12 15 19 input.mtx > output.mtx
75 .PP
76 To extract column 35 from a matrix:
77 .IP "" .2i
78 rcrop 0 35 0 1 orig.mtx > col35.mtx
79 .PP
80 To crop a picture to (X by Y) = (1500 by 1000),
81 starting from upper-left corner:
82 .IP "" .2i
83 rcrop 0 0 1000 1500 orig.hdr cropped.hdr
84 .PP
85 Two ways of computing the inner product of row 15 in matrix 1 by
86 column 27 in matrix 2 and extracting the result without a header,
87 the second command being more efficient:
88 .IP "" .2i
89 rmtxop -fa mat1.mtx mat2.mtx | rcrop 15 27 1 1 | getinfo -
90 .IP "" .2i
91 rmtxop -fa '!rcrop 15 0 1 0 mat1.mtx' '!rcrop 0 27 0 1 mat2.mtx' | getinfo -
92 .SH AUTHOR
93 Greg Ward
94 .SH "SEE ALSO"
95 evalglare(1), pcompos(1), rcalc(1), rcode_depth(1), rcode_norm(1),
96 rcollate(1), rcomb(1), rfluxmtx(1), rmtxop(1), rsplit(1), rtrace(1)