| 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) |