matlab 生成.bmp格式的文件

生成.bmp格式的文件

.bmp格式的图片是未压缩的图片,相比于.raw格式,需要加上头文件。下面以大小为M*N的图片为例,说明头文件格式和内容。

M = 128;

N = 128;

% 构造头文件

fileMemory = bmpHeadTrans(M*N+1078);

wMemory = bmpHeadTrans(M);

hMemory = bmpHeadTrans(N);

imgMemory = bmpHeadTrans(M*N);

head_bmp = [66; 77; %头文件 0x4D42 不要改动

fileMemory; %文件大小

0; 0; 0; 0;

54; 4; 0; 0; %1078 前14个字节

40; 0; 0; 0; % 40个字节

wMemory; %图像的长和宽

hMemory;

1; 0; %不变

8; 0; % 8位

0;0;0;0;%不压缩

imgMemory; %

0; 0; 0; 0; 0; 0; 0; 0; %分辨率

0; 1; 0; 0; 0; 0; 0; 0;

% 下面是强度值0-255对应的颜色索引

0; 0; 0;0;

1; 1; 1;0;

2; 2; 2;0;

3; 3; 3;0;

4; 4; 4;0;

5; 5; 5;0;

6; 6; 6;0;

7; 7; 7;0;

8; 8; 8;0;

9; 9; 9;0;

10; 10; 10;0;

11; 11; 11;0;

12; 12; 12;0;

13; 13; 13;0;

14; 14; 14;0;

15; 15; 15;0;

16; 16; 16;0;

17; 17; 17;0;

18; 18; 18;0;

19; 19; 19;0;

20; 20; 20;0;

21; 21; 21;0;

22; 22; 22;0;

23; 23; 23;0;

24; 24; 24;0;

25; 25; 25;0;

26; 26; 26;0;

27; 27; 27;0;

28; 28; 28;0;

29; 29; 29;0;

30; 30; 30;0;

31; 31; 31;0;

32; 32; 32;0;

33; 33; 33;0;

34; 34; 34;0;

35; 35; 35;0;

36; 36; 36;0;

37; 37; 37;0;

38; 38; 38;0;

39; 39; 39;0;

40; 40; 40;0;

41; 41; 41;0;

42; 42; 42;0;

43; 43; 43;0;

44; 44; 44;0;

45; 45; 45;0;

46; 46; 46;0;

47; 47; 47;0;

48; 48; 48;0;

49; 49; 49;0;

50; 50; 50;0;

51; 51; 51;0;

52; 52; 52;0;

53; 53; 53;0;

54; 54; 54;0;

55; 55; 55;0;

56; 56; 56;0;

57; 57; 57;0;

58; 58; 58;0;

59; 59; 59;0;

60; 60; 60;0;

61; 61; 61;0;

62; 62; 62;0;

63; 63; 63;0;

64; 64; 64;0;

65; 65; 65;0;

66; 66; 66;0;

67; 67; 67;0;

68; 68; 68;0;

69; 69; 69;0;

70; 70; 70;0;

71; 71; 71;0;

72; 72; 72;0;

73; 73; 73;0;

74; 74; 74;0;

75; 75; 75;0;

76; 76; 76;0;

77; 77; 77;0;

78; 78; 78;0;

79; 79; 79;0;

80; 80; 80;0;

81; 81; 81;0;

82; 82; 82;0;

83; 83; 83;0;

84; 84; 84;0;

85; 85; 85;0;

86; 86; 86;0;

87; 87; 87;0;

88; 88; 88;0;

89; 89; 89;0;

90; 90; 90;0;

91; 91; 91;0;

92; 92; 92;0;

93; 93; 93;0;

94; 94; 94;0;

95; 95; 95;0;

96; 96; 96;0;

97; 97; 97;0;

98; 98; 98;0;

99; 99; 99;0;

100 ;100; 100;0;

101 ;101; 101;0;

102 ;102; 102;0;

103 ;103; 103;0;

104 ;104 ;104;0;

105 ;105 ;105;0;

106 ;106 ;106;0;

107 ;107 ;107;0;

108 ;108 ;108;0;

109 ;109 ;109;0;

110 ;110 ;110;0;

111 ;111 ;111;0;

112 ;112 ;112;0;

113 ;113 ;113;0;

114 ;114 ;114;0;

115 ;115 ;115;0;

116 ;116 ;116;0;

117 ;117 ;117;0;

118 ;118 ;118;0;

119 ;119 ;119;0;

120 ;120 ;120;0;

121 ;121 ;121;0;

122 ;122 ;122;0;

123 ;123 ;123;0;

124 ;124 ;124;0;

125 ;125 ;125;0;

126 ;126 ;126;0;

127 ;127 ;127;0;

128 ;128 ;128;0;

129 ;129 ;129;0;

130 ;130 ;130;0;

131 ;131 ;131;0;

132 ;132 ;132;0;

133 ;133 ;133;0;

134 ;134 ;134;0;

135 ;135 ;135;0;

136 ;136 ;136;0;

137 ;137 ;137;0;

138 ;138 ;138;0;

139 ;139 ;139;0;

140 ;140 ;140;0;

141 ;141 ;141;0;

142 ;142 ;142;0;

143 ;143 ;143;0;

144 ;144 ;144;0;

145 ;145 ;145;0;

146 ;146 ;146;0;

147 ;147 ;147;0;

148 ;148 ;148;0;

149 ;149 ;149;0;

150 ;150 ;150;0;

151 ;151 ;151;0;

152 ;152 ;152;0;

153 ;153 ;153;0;

154 ;154 ;154;0;

155 ;155 ;155;0;

156 ;156 ;156;0;

157 ;157 ;157;0;

158 ;158 ;158;0;

159 ;159 ;159;0;

160 ;160 ;160;0;

161 ;161 ;161;0;

162 ;162 ;162;0;

163 ;163 ;163;0;

164 ;164 ;164;0;

165 ;165 ;165;0;

166 ;166 ;166;0;

167 ;167 ;167;0;

168 ;168 ;168;0;

169 ;169 ;169;0;

170 ;170 ;170;0;

171 ;171 ;171;0;

172 ;172 ;172;0;

173 ;173 ;173;0;

174 ;174 ;174;0;

175 ;175 ;175;0;

176 ;176 ;176;0;

177 ;177 ;177;0;

178 ;178 ;178;0;

179 ;179 ;179;0;

180 ;180 ;180;0;

181 ;181 ;181;0;

182 ;182 ;182;0;

183 ;183 ;183;0;

184 ;184 ;184;0;

185 ;185 ;185;0;

186 ;186 ;186;0;

187 ;187 ;187;0;

188 ;188 ;188;0;

189 ;189 ;189;0;

190 ;190 ;190;0;

191 ;191 ;191;0;

192 ;192 ;192;0;

193 ;193 ;193;0;

194 ;194 ;194;0;

195 ;195 ;195;0;

196 ;196 ;196;0;

197 ;197 ;197;0;

198 ;198 ;198;0;

199 ;199 ;199;0;

200 ;200 ;200;0;

201 ;201 ;201;0;

202 ;202 ;202;0;

203 ;203 ;203;0;

204 ;204 ;204;0;

205 ;205 ;205;0;

206 ;206 ;206;0;

207 ;207 ;207;0;

208 ;208 ;208;0;

209 ;209 ;209;0;

210 ;210 ;210;0;

211 ;211 ;211;0;

212 ;212 ;212;0;

213 ;213 ;213;0;

214 ;214 ;214;0;

215 ;215 ;215;0;

216 ;216 ;216;0;

217 ;217 ;217;0;

218 ;218 ;218;0;

219 ;219 ;219;0;

220 ;220 ;220;0;

221 ;221 ;221;0;

222 ;222 ;222;0;

223 ;223 ;223;0;

224 ;224 ;224;0;

225 ;225 ;225;0;

226 ;226 ;226;0;

227 ;227 ;227;0;

228 ;228 ;228;0;

229 ;229 ;229;0;

230 ;230 ;230;0;

231 ;231 ;231;0;

232 ;232 ;232;0;

233 ;233 ;233;0;

234 ;234 ;234;0;

235 ;235 ;235;0;

236 ;236 ;236;0;

237 ;237 ;237;0;

238 ;238 ;238;0;

239 ;239 ;239;0;

240 ;240 ;240;0;

241 ;241 ;241;0;

242 ;242 ;242;0;

243 ;243 ;243;0;

244 ;244 ;244;0;

245 ;245 ;245;0;

246 ;246 ;246;0;

247 ;247 ;247;0;

248 ;248 ;248;0;

249 ;249 ;249;0;

250 ;250 ;250;0;

251 ;251 ;251;0;

252 ;252 ;252;0;

253 ;253 ;253;0;

254 ;254 ;254;0;

255 ;255 ;255;0;

]';

% 写入头文件

fileName = 'test.bmp';

fid = fopen(fileName,'w+');

[rows, cols] = size(head_bmp);

for k = 1:cols

fwrite(fid, head_bmp(k));

end

fclose(fid);

%写入图片的数值

fid = fopen(fileName,'a+');

for i = 1:M

for j = 1:N

value = j;

fwrite(fid,value,'uint8');

end

end

function fMemory = bmpHeadTrans(fMemory10)

fMemory16 = dec2hex(fMemory10);

l=length(fMemory16);

for i = 1:8-l

fMemory16 = ['0',fMemory16];

end

fMemory = [hex2dec(fMemory16(end - 1:end));

hex2dec(fMemory16(end - 3: end - 2));

hex2dec(fMemory16(end - 5: end - 4));

hex2dec(fMemory16(end - 7: end - 6))];

end

总结

以上所述是小编给大家介绍的matlab 生成.bmp格式的文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 matlab 生成.bmp格式的文件 的全部内容, 来源链接: utcz.com/z/324119.html

回到顶部