- 在线时间
- 490 小时
- 最后登录
- 2024-2-3
- 注册时间
- 2013-2-28
- 听众数
- 117
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39235 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31237
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1388
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 衰 2020-10-25 11:55 |
|---|
签到天数: 264 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
 群组: 2013年数学建模国赛备 |
我为做机器人自学C++编程,在网上找了个程序改了一下。调试该程序总报错,因为ntd.dll的原因,无匹配的字符信息。我想把我C:\windows\system32\ntd.dll删除后,再下载一个新的ntd.dll替换,老的ntd.dll删不掉。请教专家们啦,看看我这程序错哪。: y( d% k8 z$ u9 _% D/ L
#include <iostream.h>
8 X' T/ j" z' `1 l' {3 N. w9 b#include <stdio.h>+ }" k& l' |' t4 b+ b; }0 n4 F$ }
#include <math.h>
$ v2 z9 d& _2 h0 r( f7 Ftypedef unsigned char BYTE;
3 x, [. r3 P$ w( q% P. O3 glong Ary2DW (unsigned char p[4]){
& v9 V% E3 G+ u. Nint a0,a1,a2,a3;unsigned long A;
_- {- N! h: ]8 N0 h( Ra0=int (p[0]); a1=int (p[1]);1 e& f+ I! Z6 T# x% L+ T8 ?
a2=int (p[2]); a3=int (p[3]);* [0 L) d. a4 l, p# T
A=a3*256*256*256+a2*256*256*256+a0;/ X7 ], J4 Q4 a: z: V
return A;};//实现数的大小正确转换,转换为WORD所代表的实际值
9 m) V( i2 b) L; O# F* T2 Xtypedef struct tagBITMAPFILEHEADER {
& R% x3 h9 A |- X* c& p1 pBYTE bfType[2];BYTE bfSize[4];
( G7 m" ?6 j! i/ cBYTE bfRcserved1[2];
! B. y6 D# U' g1 |6 G3 H9 L2 jBYTE bfRcserved2[2];
# m! P# X6 p: a, |BYTE bfoffBits[4];' A3 s: E( Z% t% x2 ]/ x
}BITMAPFILEHEADER;//定义文件头格式,用相似的数据类型代替系统定义的数据类型
6 i# Q* W8 a% D; U' L" o* P9 otypedef struct tagBITMAPINFOHEADER {# ~4 d3 p3 l6 X. X8 G& P! @1 B
BYTE biSize[4];; K, V4 a5 {# h+ I0 n7 C2 t. y
BYTE biWidth[4];
2 H9 d0 |' \: X" ?BYTE biHeight[4];
) e% S1 j" D' A# ?+ ~, f2 qBYTE biCompression[4];) s' ]& [$ Q8 E2 a
BYTE biXPelsPerMeter[4];! M/ |* f" v1 v" O& c
BYTE biYPelsPerMeter[4];* ^! z6 Y* y$ J8 p4 i& A, v
BYTE biClrUsed[4];) S2 n5 k3 D9 w B& R# F
BYTE biClrImportant[4];$ d, A8 g3 k- Q
}BITMAPINFOHEADER;//定义信息头格式,用相似的数据类型代替系统定义的数据类型5 @' Q. b9 W t$ [( {# }
typedef struct BitmapFile{" z/ G1 d4 L* o& l! j4 |& x
BITMAPFILEHEADER bmfheader;% ~* H8 Q2 L) R+ h, `3 D
BITMAPINFOHEADER bminfoheader;
; G( y" c/ B. l7 s6 w `0 IBYTE bitmapdata[3275520];
% J8 d( h/ c# k1 Q8 J: ?/ C}bitmap;//定义所处理图像文件对应BMP的文件格式) W0 W- d/ p4 e1 w) u
//主函数,将图像区数据读入B、G、R三个数组# r& v" ]/ h( v! B2 D9 P* p5 H K
int main()3 N0 m: u1 Q1 ~
{
/ `; m) B0 z8 [bitmap *ample1;
2 Y6 z% x/ C- ]# wFILE *fp, *fp1;0 e& [2 o0 v' Q' r9 O
BYTE R[1280][853],G[1280][853],B[1280][853];
7 x, M" t* {3 Q/ B8 ]long k=0;
; r V3 _$ @* Q$ o7 ^int i,j;" B$ A" b% M# q1 v. f
char name[20]="try.bmp";//读到新文件的文件名
^ c5 }* V7 lfp=fopen("D:\\ample1.bmp","rb");//以二进制打开读文件% p. l4 Q" n" [
fp1=fopen(name,"wb");//为写建立一个新文件名
4 D6 V) U( M' g( J$ ]; p& M3 pif(! (ample1=new bitmap)){
- J/ J2 @5 Z1 f8 B% Ocout<<"error"<<endl;return 0;
`( X. I9 j' [& U! v1 R}
5 y7 v" x, N" _' l" H) R, h3 belse
& ]" H5 ?" ~# D$ X{: u* U. T( [: w ~1 M' |% u
fread(ample1,sizeof(bitmap),1,fp);% X5 W4 a- P: o
fwrite(ample1,sizeof(bitmap),1,fp1);
! O! d3 K! [. K2 P9 L3 B3 Tcout<<"********位图文件头格式:********"<<endl; 5 x% r3 S$ b2 J+ b0 Y7 V
cout<<"位图文件的类型"<<ample1 -> bmfheader.bfType[0]<<ample1 -> bmfheader.bfType[1]<<endl;
9 }2 Q# ~1 n2 V( b& E6 P4 wcout<<"位图文件的大小"<<Ary2DW(ample1 -> bmfheader.bfSize)<<"字节"<<endl;( O% w {9 ^) z5 c8 ^! g( s
cout<<"********以下是图像数据区********"<<endl;
# b8 [ N, W' A//指定像素点,以16进制输出BGR值
/ e" L* `+ g! z9 }; H, Fcout<<"像素点B通道的值"<<hex<<int (ample1 -> bitmapdata[0])<<endl;
9 b/ H4 u0 n# ?cout<<"像素点G通道的值"<<hex<<int (ample1 -> bitmapdata[1])<<endl;
/ P" P' a8 P M0 s# i% ycout<<"像素点R通道的值"<<hex<<int (ample1 -> bitmapdata[2])<<endl;
1 t# S# Q! G8 ^# p//将图像区数据读入 R、G、B三个数组- N; [- ~5 j! J
for(i=1280; i>=0; i--). i$ W/ \. P. { w$ w7 j
for(j=0; j<853; j++) ) D9 a# f1 y& ~7 a" T
{
# o% C+ b6 \/ J; |' xB[i][j]=ample1 -> bitmapdata[k++]; . V' A% V$ V( H6 p& l3 U+ G
G[i][j]=ample1 -> bitmapdata[k++]; 7 A, I0 l6 [( j* j9 W
R[i][j]=ample1 -> bitmapdata[k++];- W0 P5 j6 R+ E+ y
}
/ [/ f, N0 E$ |/ |* v& R% j* M# H//检查是否将图像数据读入数组
; \) ^+ K9 T, y+ H k$ o8 Ucout<<"********以下是内存数组数据********"<<endl;
6 K$ z7 c8 M1 D; \* C! d4 acout<<"第一排第一个像素点B通道的值"<<int (B[0][0])<<endl;
6 [* _$ K) j, c" `; Q3 t1 wcout<<"最后一排第一个像素点R通道的值"<<int (R[1280][0])<<endl;
- M2 H, p+ k; u' O0 g" \' ]; o" creturn 1;
( B) j& I& l( [+ H4 x+ x}; U% J0 A& K- O1 E0 [( c- m
delete ample1;
1 `- t- ?3 W% Q/ Jfclose(fp); 2 D: }/ J" S) V0 k; l
fclose(fp1);! P. b7 E+ V; r2 K% K6 r, `# ]
} |
zan
|