欢迎来到天天文库
浏览记录
ID:38259895
大小:16.39 KB
页数:11页
时间:2019-06-07
《java图像处理实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一读取bmp图片数据// 获取待检测图像 ,数据保存在数组nData[],nB[] ,nG[] ,nR[]中 public voidgetBMPImage(Stringsource)throwsException{ clearNData(); //清除数据保存区 FileInputStreamfs=null; try{ fs=newFileInputStream(source); intbfLen=14;
2、 bytebf[]=newbyte[bfLen]; fs.read(bf,0,bfLen);//读取14字节BMP文件头 intbiLen=40; bytebi[]=newbyte[biLen]; fs.read(bi,0,biLen);//读取40字节BMP信息头 //源图宽度 nWidth=(((int)bi[7]&0xff)<<24)
3、(((int)bi[6]&0xff)<<16)
4、
5、(((int)bi[5]&0xff)<<8)
6、(int)bi[4]&0xff; //源图高度 nHeight=(((int)bi[11]&0xff)<<24)
7、(((int)bi[10]&0xff)<<16)
8、(((int)bi[9]&0xff)<<8)
9、(int)bi[8]&0xff; //位数 nBitCount=(((int)bi[15]&0xff)<<8)
10、(int)bi[14]&0xff;
11、 //源图大小 intnSizeImage=(((int)bi[23]&0xff)<<24)
12、(((int)bi[22]&0xff)<<16)
13、(((int)bi[21]&0xff)<<8)
14、(int)bi[20]&0xff; //对24位BMP进行解析 if(nBitCount==24){ intnPad=(nSizeImage/nHeight)-nWidth*3; nData=
15、newint[nHeight*nWidth]; nB=newint[nHeight*nWidth]; nR=newint[nHeight*nWidth]; nG=newint[nHeight*nWidth]; bytebRGB[]=newbyte[(nWidth+nPad)*3*nHeight]; fs.read(bRGB,0,(nWidth+nPad)*3*nHeight); intnIndex=0;
16、 for(intj=0;j17、(((int)bRGB[nIndex+2]&0xff)<<16) 18、(((int)bRGB[nIndex+1]&0xff)<<8) 19、 20、(int)bRGB[nIndex]&0xff; nB[nWidth*(nHeight-j-1)+i]=(int)bRGB[nIndex]&0xff; nG[nWidth*(nHeight-j-1)+i]=(int)bRGB[nIndex+1]&0xff; nR[nWidth*(nHeight-j-1
17、(((int)bRGB[nIndex+2]&0xff)<<16)
18、(((int)bRGB[nIndex+1]&0xff)<<8)
19、
20、(int)bRGB[nIndex]&0xff; nB[nWidth*(nHeight-j-1)+i]=(int)bRGB[nIndex]&0xff; nG[nWidth*(nHeight-j-1)+i]=(int)bRGB[nIndex+1]&0xff; nR[nWidth*(nHeight-j-1
此文档下载收益归作者所有