2013年全国数学建模大赛获奖论文碎纸片的拼接复原 - 图文(7)

2019-08-03 14:46

case 5: mixIndex = mixIndex<<2; mixIndex = mixIndex>>7; break; case 6: mixIndex = mixIndex<<1; mixIndex = mixIndex>>7; break; case 7: mixIndex = mixIndex>>7; break; } //将像素数据保存到数组中对应的位置 dataOfBmp[index].rgbRed = pRgb[mixIndex].rgbRed; dataOfBmp[index].rgbGreen = pRgb[mixIndex].rgbGreen; dataOfBmp[index].rgbBlue = pRgb[mixIndex].rgbBlue; dataOfBmp[index].rgbReserved = pRgb[mixIndex].rgbReserved; index++; } }

if(bitInfoHead.biBitCount==2){ for(int i=0;i>6; break; case 1: mixIndex = mixIndex<<4; mixIndex = mixIndex>>6; break; case 2: mixIndex = mixIndex<<2; mixIndex = mixIndex>>6; break; case 3: mixIndex = mixIndex>>6; break; } //将像素数据保存到数组中对应的位置 dataOfBmp[index].rgbRed = pRgb[mixIndex].rgbRed; dataOfBmp[index].rgbGreen = pRgb[mixIndex].rgbGreen; dataOfBmp[index].rgbBlue = pRgb[mixIndex].rgbBlue; dataOfBmp[index].rgbReserved = pRgb[mixIndex].rgbReserved; index++;

} }

if(bitInfoHead.biBitCount == 4){ for(int i=0;i

29

k = i*l_width + j/2; mixIndex = pColorData[k]; if(j%2==0){//低 mixIndex = mixIndex<<4; mixIndex = mixIndex>>4; } else{//高 mixIndex = mixIndex>>4; } dataOfBmp[index].rgbRed = pRgb[mixIndex].rgbRed; dataOfBmp[index].rgbGreen = pRgb[mixIndex].rgbGreen; dataOfBmp[index].rgbBlue = pRgb[mixIndex].rgbBlue; dataOfBmp[index].rgbReserved = pRgb[mixIndex].rgbReserved; index++; } }

if(bitInfoHead.biBitCount == 8){ for(int i=0;i

if(bitInfoHead.biBitCount == 16){ for(int i=0;i

30

}

zuocnt = 0; youcnt = 0;

for(unsigned int i=width*height;i>0;i--){ if(i % width == 0){ if((unsigned char)dataOfBmp[i].rgbRed<=0x7F){ if(shangcizuo == 0){ shangcizuo = (i/width); zuo[zuocnt++] = (unsigned int)(i/width); //zuozhizhen++; }else{ if(shangcizuo-1 == (i/width)){ shangcizuo--; }else{ zuo[zuocnt++] = (unsigned int)(i/width); shangcizuo = (unsigned int)(i/width); //zuozhizhen++; } } } } if(i % width == (width - 1)){ if((unsigned char)dataOfBmp[i].rgbRed<=0x7F){ if(shangciyou == 0){ shangciyou = (i/width); you[youcnt++] = (unsigned int)(i/width); //zuozhizhen++; }else{ if(shangciyou-1 == (i/width)){ shangciyou--; }else{ you[youcnt++] = (unsigned int)(i/width); shangciyou = (unsigned int)(i/width); //zuozhizhen++; } } } } }

zuocnt = 0; youcnt = 0; putchar(0x0a);

for(i=0;i<100;i++){ printf(\ \}

putchar(0x0a);

for(i=0;i<100;i++){ printf(\ \}

//showBmpInforHead(&bitInfoHead); fclose(pfile); fclose(put);

if (bitInfoHead.biBitCount<24) {

free(pRgb);

31

} free(dataOfBmp); free(pColorData); printf(\}

unsigned char findone(){ unsigned int i,j; for(i=0;i<19;i++){ for(j=0;j<100;j++){ if(zuoshuzu[i][j]!=0){ break; } } if(j == 100){ //break; return i; } } if(i == 19){ return 0xFF; } }

unsigned char findlast(){ unsigned int i,j; for(i=0;i<19;i++){ for(j=0;j<100;j++){ if(youshuzu[i][j]!=0){ break; } } if(j == 100){ //break; return i; } } if(i == 19){ return 0xFF; } }

unsigned char cmp(unsigned char a,unsigned char b){ unsigned int i,j; unsigned int cmpcnt=0,pipeicnt=0; for(i=0;i<100;i++){ if(youshuzu[a][i]==0){ printf(\ return (unsigned char)(((double)pipeicnt/(double)cmpcnt) * 100); }else{ cmpcnt++; } for(j=0;j<100;j++){ if(fabs(youshuzu[a][i] - zuoshuzu[b][j]) <=1){ pipeicnt++; break; } } } printf(\

32

return (unsigned char)(((double)pipeicnt/(double)cmpcnt) * 100); }

void main(){ unsigned int i,j; unsigned char temp=0,temp1=0,zuiyou=0; strcpy(strFile,\ initfile(zuoshuzu[0],youshuzu[0]); strcpy(strFile,\ initfile(zuoshuzu[1],youshuzu[1]); strcpy(strFile,\ initfile(zuoshuzu[2],youshuzu[2]); strcpy(strFile,\ initfile(zuoshuzu[3],youshuzu[3]); strcpy(strFile,\ initfile(zuoshuzu[4],youshuzu[4]); strcpy(strFile,\ initfile(zuoshuzu[5],youshuzu[5]); strcpy(strFile,\ initfile(zuoshuzu[6],youshuzu[6]); strcpy(strFile,\ initfile(zuoshuzu[7],youshuzu[7]); strcpy(strFile,\ initfile(zuoshuzu[8],youshuzu[8]); strcpy(strFile,\ initfile(zuoshuzu[9],youshuzu[9]); strcpy(strFile,\ initfile(zuoshuzu[10],youshuzu[10]); strcpy(strFile,\ initfile(zuoshuzu[11],youshuzu[11]); strcpy(strFile,\ initfile(zuoshuzu[12],youshuzu[12]); strcpy(strFile,\ initfile(zuoshuzu[13],youshuzu[13]); strcpy(strFile,\ initfile(zuoshuzu[14],youshuzu[14]); strcpy(strFile,\ initfile(zuoshuzu[15],youshuzu[15]); strcpy(strFile,\ initfile(zuoshuzu[16],youshuzu[16]); strcpy(strFile,\ initfile(zuoshuzu[17],youshuzu[17]); strcpy(strFile,\ initfile(zuoshuzu[18],youshuzu[18]); printf(\第一张图片:%d \ printf(\最后第一张图片:%d\ putchar(0x0a); for(i=0;i<19;i++){ temp = temp1 = zuiyou = 0; for(j=0;j<19;j++){ temp = cmp(i,j); if(temp > temp1){ temp1 = temp; zuiyou = j; } } printf(\最优:%%%d,%d\ putchar(0x0a);

33


2013年全国数学建模大赛获奖论文碎纸片的拼接复原 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:郑大远程教育《大学英语I》第09章在线测试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: