summaryrefslogtreecommitdiffstats
path: root/SD-VBS/common/toolbox/toolbox_basic/TOOLBOX_calib/writeras.m
diff options
context:
space:
mode:
Diffstat (limited to 'SD-VBS/common/toolbox/toolbox_basic/TOOLBOX_calib/writeras.m')
-rwxr-xr-xSD-VBS/common/toolbox/toolbox_basic/TOOLBOX_calib/writeras.m105
1 files changed, 105 insertions, 0 deletions
diff --git a/SD-VBS/common/toolbox/toolbox_basic/TOOLBOX_calib/writeras.m b/SD-VBS/common/toolbox/toolbox_basic/TOOLBOX_calib/writeras.m
new file mode 100755
index 0000000..c7eb7bc
--- /dev/null
+++ b/SD-VBS/common/toolbox/toolbox_basic/TOOLBOX_calib/writeras.m
@@ -0,0 +1,105 @@
1function writeras(filename, image, map);
2%WRITERAS Write an image file in sun raster format.
3% WRITERAS('imagefile.ras', image_matrix, map) writes a
4% "sun.raster" image file.
5
6% Written by Thomas K. Leung 3/30/93.
7% @ California Institute of Technology.
8
9
10% PC and UNIX version of writeras - Jean-Yves Bouguet - Dec. 1998
11
12dot = max(find(filename == '.'));
13suffix = filename(dot+1:dot+3);
14
15if nargin < 3,
16 map = [];
17end;
18
19if(strcmp(suffix, 'ras'))
20 %Write header
21
22 fp = fopen(filename, 'wb');
23 if(fp < 0) error(['Cannot open ' filename '.']), end
24
25 [height, width] = size(image);
26 image = image - 1;
27 mapsize = size(map, 1)*size(map,2);
28 %fwrite(fp, ...
29 % [1504078485, width, height, 8, height*width, 1, 1, mapsize], ...
30 % 'long');
31
32
33 zero_str = '00000000';
34
35 % MAGIC NUMBER:
36
37
38 fwrite(fp,89,'uchar');
39 fwrite(fp,166,'uchar');
40 fwrite(fp,106,'uchar');
41 fwrite(fp,149,'uchar');
42
43 width_str = dec2hex(width);
44 width_str = [zero_str(1:8-length(width_str)) width_str];
45
46 for ii = 1:2:7,
47 fwrite(fp,hex2dec(width_str(ii:ii+1)),'uchar');
48 end;
49
50
51 height_str = dec2hex(height);
52 height_str = [zero_str(1:8-length(height_str)) height_str];
53
54 for ii = 1:2:7,
55 fwrite(fp,hex2dec(height_str(ii:ii+1)),'uchar');
56 end;
57
58 fwrite(fp,0,'uchar');
59 fwrite(fp,0,'uchar');
60 fwrite(fp,0,'uchar');
61 fwrite(fp,8,'uchar');
62
63 ll = height*width;
64 ll_str = dec2hex(ll);
65 ll_str = [zero_str(1:8-length(ll_str)) ll_str];
66
67 for ii = 1:2:7,
68 fwrite(fp,hex2dec(ll_str(ii:ii+1)),'uchar');
69 end;
70
71 fwrite(fp,0,'uchar');
72 fwrite(fp,0,'uchar');
73 fwrite(fp,0,'uchar');
74 fwrite(fp,1,'uchar');
75 fwrite(fp,0,'uchar');
76 fwrite(fp,0,'uchar');
77 fwrite(fp,0,'uchar');
78 fwrite(fp,~~mapsize,'uchar');
79
80 mapsize_str = dec2hex(mapsize);
81 mapsize_str = [zero_str(1:8-length(mapsize_str)) mapsize_str];
82
83 %keyboard;
84
85 for ii = 1:2:7,
86 fwrite(fp,hex2dec(mapsize_str(ii:ii+1)),'uchar');
87 end;
88
89
90 if mapsize ~= 0
91 map = min(255, fix(255*map));
92 fwrite(fp, map, 'uchar');
93 end
94 if rem(width,2) == 1
95 image = [image'; zeros(1, height)]';
96 top = 255 * ones(size(image));
97 fwrite(fp, min(top,image)', 'uchar');
98 else
99 top = 255 * ones(size(image));
100 fwrite(fp, min(top,image)', 'uchar');
101 end
102 fclose(fp);
103else
104 error('Image file name must end in either ''ras'' or ''rast''.');
105end