📄 process.h~
字号:
if(aim!=1&&aim!=2) { if(aim==0) //判断盲文是不是移至正规矩阵的第一点 binarynumber[0] = 1; else { if (sqrt((double)(x_change-matrix.matrix_point[0].x)* (x_change-matrix.matrix_point[0].x)+ (y_change-matrix.matrix_point[0].y)* (y_change-matrix.matrix_point[0].y)) <=POINTRADIUS) { if(!binarynumber[0]) { pointnum++; binarynumber[0] = 1; } } } } /*--------正规矩阵第2个点的区域范围-------------*/ if(aim!=2) { if(aim==1)//判断盲文是不是移至正规矩阵的第二点 binarynumber[1] = 1; else { if (sqrt((double)(x_change-matrix.matrix_point[1].x)* (x_change-matrix.matrix_point[1].x)+ (y_change-matrix.matrix_point[1].y)* (y_change-matrix.matrix_point[1].y)) <=POINTRADIUS) { if(!sign) { poiline++; sign++; if(poiline==1) { divide_1_x=x_temp; divide_1_y=y_temp; } else if(poiline==2) { two=1; divide_2_x=x_temp; divide_2_y=y_temp; } else if(poiline==3) { three=1; divide_3_x=x_temp; divide_3_y=y_temp; } else if(poiline==4) four=1; } if(!binarynumber[1]||two==1||three==1||four==1) { pointnum++; two=0; three=0; four=0; binarynumber[1] = 1; } } } } /*--------正规矩阵第3个点的区域范围-------------*/ if(aim==2)//判断盲文是不是移至正规矩阵的第三点 binarynumber[2] = 1; else { if (sqrt((double)(x_change-matrix.matrix_point[2].x)* (x_change-matrix.matrix_point[2].x)+ (y_change-matrix.matrix_point[2].y)* (y_change-matrix.matrix_point[2].y)) <=POINTRADIUS) { if(!binarynumber[2]) { pointnum++; binarynumber[2] = 1; } } } /*--------正规矩阵第4个点的区域范围-------------*/ if (sqrt((double)(x_change-matrix.matrix_point[3].x)* (x_change-matrix.matrix_point[3].x)+ (y_change-matrix.matrix_point[3].y)* (y_change-matrix.matrix_point[3].y)) <=POINTRADIUS) { if(!binarynumber[3]) { pointnum++; binarynumber[3] = 1; } } /*--------正规矩阵第5个点的区域范围-------------*/ else if (sqrt((double)(x_change-matrix.matrix_point[4].x)* (x_change-matrix.matrix_point[4].x)+ (y_change-matrix.matrix_point[4].y)* (y_change-matrix.matrix_point[4].y)) <=POINTRADIUS) { if(!binarynumber[4]) { pointnum++; binarynumber[4] = 1; } } /*--------正规矩阵第6个点的区域范围-------------*/ else if (sqrt((double)(x_change-matrix.matrix_point[5].x)* (x_change-matrix.matrix_point[5].x)+ (y_change-matrix.matrix_point[5].y)* (y_change-matrix.matrix_point[5].y)) <=POINTRADIUS) { if(!binarynumber[5]) { pointnum++; binarynumber[5] = 1; } } } { // printf("******************%f\n",A); if(pointnum==0&&aim==0) if(A>2.5&&A<5) { binarynumber[0]=1; binarynumber[5]=1;
}
if(pointnum == 0) { if(A<-4&&A>-100&&aim==2) { binarynumber[2]=1; binarynumber[3]=1; } else {
for(i=0;i<6;i++) binary[i] = 0;
return 0; } } else if(pointnum==1&&aim==0&&binarynumber[1]==1) pointnumanother=1; else if(pointnum == 2 && binarynumber[1]==1&&binarynumber[2]==1) { dis1=sqrt((double)(matrix.matrix_point[1].x-x_temp)* (matrix.matrix_point[1].x-x_temp)+ (matrix.matrix_point[1].y-y_temp)* (matrix.matrix_point[1].y-y_temp)); dis2=sqrt((double)(matrix.matrix_point[2].x-x_temp)* (matrix.matrix_point[2].x-x_temp)+ (matrix.matrix_point[2].y-y_temp)* (matrix.matrix_point[2].y-y_temp)); // pointnum--; if(dis1 < dis2) binarynumber[2] = 0; else binarynumber[1] = 0; } else if(pointnum == 2 && binarynumber[1]==1&&binarynumber[5]==1) {//printf("***************************\n"); dis1=sqrt((double)(matrix.matrix_point[1].x-x_temp)* (matrix.matrix_point[1].x-x_temp)+ (matrix.matrix_point[1].y-y_temp)* (matrix.matrix_point[1].y-y_temp)); dis2=sqrt((double)(matrix.matrix_point[5].x-x_temp)* (matrix.matrix_point[5].x-x_temp)+ (matrix.matrix_point[5].y-y_temp)* (matrix.matrix_point[5].y-y_temp)); // pointnum--; if(dis1 < dis2) binarynumber[5] = 0; else binarynumber[1] = 0; } else if(pointnum == 2 && binarynumber[2]==1&&binarynumber[5]==1) { dis1=sqrt((double)(matrix.matrix_point[2].x-x_temp)* (matrix.matrix_point[2].x-x_temp)+ (matrix.matrix_point[2].y-y_temp)* (matrix.matrix_point[2].y-y_temp)); dis2=sqrt((double)(matrix.matrix_point[5].x-x_temp)* (matrix.matrix_point[5].x-x_temp)+ (matrix.matrix_point[5].y-y_temp)* (matrix.matrix_point[5].y-y_temp)); // pointnum--; if(dis1 < dis2) binarynumber[5] = 0; else binarynumber[2] = 0; } else if(pointnum == 2 && binarynumber[1]==1&&binarynumber[4]==1) { dis1=sqrt((double)(matrix.matrix_point[1].x-x_temp)* (matrix.matrix_point[1].x-x_temp)+ (matrix.matrix_point[1].y-y_temp)* (matrix.matrix_point[1].y-y_temp)); dis2=sqrt((double)(matrix.matrix_point[4].x-x_temp)* (matrix.matrix_point[4].x-x_temp)+ (matrix.matrix_point[4].y-y_temp)* (matrix.matrix_point[4].y-y_temp)); // pointnum--; if(dis1 < dis2) binarynumber[4] = 0; else binarynumber[1] = 0; } else if(pointnum == 2 && binarynumber[3]==1&&binarynumber[4]==1) { dis1=sqrt((double)(matrix.matrix_point[3].x-x_temp)* (matrix.matrix_point[3].x-x_temp)+ (matrix.matrix_point[3].y-y_temp)* (matrix.matrix_point[3].y-y_temp)); dis2=sqrt((double)(matrix.matrix_point[4].x-x_temp)* (matrix.matrix_point[4].x-x_temp)+ (matrix.matrix_point[4].y-y_temp)* (matrix.matrix_point[4].y-y_temp)); // pointnum--; if(dis1 < dis2) binarynumber[4] = 0; else binarynumber[3] = 0; } else if(pointnum == 2 && binarynumber[4]==1&&binarynumber[5]==1) { dis1=sqrt((double)(matrix.matrix_point[4].x-x_temp)* (matrix.matrix_point[4].x-x_temp)+ (matrix.matrix_point[4].y-y_temp)* (matrix.matrix_point[4].y-y_temp)); dis2=sqrt((double)(matrix.matrix_point[5].x-x_temp)* (matrix.matrix_point[5].x-x_temp)+ (matrix.matrix_point[5].y-y_temp)* (matrix.matrix_point[5].y-y_temp)); // pointnum--; if(dis1 < dis2) binarynumber[5] = 0; else binarynumber[4] = 0; } else if(pointnum==3&&binarynumber[1]&&binarynumber[2]==1&&binarynumber[5]==1) {
}
else if(pointnum==3&&binarynumber[1]&&binarynumber[4]==1&&binarynumber[5]==1)
{ } else if(pointnum > 2) {
printf("错误!误差太大,无法识别。\n");
return 0; } } // } for(i=0;i<6;i++)
if(binarynumber[i]==1) binary[i]=binarynumber[i]; /*for(i=0;i<6;i++) printf("-%d-",binary[i]);*/ for(i=0;i<6;i++)
binarynumber[i] = 0 ; } //printf("******************%d\n",aim); if(pointnumanother==1&&poiline==1) { dis1=sqrt((double)(matrix.matrix_point[1].x-divide_1_x)* (matrix.matrix_point[1].x-divide_1_x)+ (matrix.matrix_point[1].y-divide_1_y)* (matrix.matrix_point[1].y-divide_1_y)); dis2=sqrt((double)(matrix.matrix_point[5].x-divide_1_x)* (matrix.matrix_point[5].x-divide_1_x)+ (matrix.matrix_point[5].y-divide_1_y)* (matrix.matrix_point[5].y-divide_1_y)); if(dis2<dis1) { binary[1]=0; binarynumber[0] = 1; binarynumber[5] = 1; } else { binarynumber[0] = 1; binarynumber[1] = 1; } } if(poiline == 2) { //提高精度 // printf("***************************\n"); if(divide_1_x-divide_2_x!=0) A=(double)(divide_2_y-divide_1_y)/(divide_1_x-divide_2_x); else { binarynumber[1] = 1; binarynumber[2] = 1; } if(A>=-0.6&&A<=0.6) { dis1=sqrt((double)(matrix.matrix_point[1].x-divide_1_x)* (matrix.matrix_point[1].x-divide_1_x)+ (matrix.matrix_point[1].y-divide_1_y)* (matrix.matrix_point[1].y-divide_1_y)); dis2=sqrt((double)(matrix.matrix_point[2].x-divide_1_x)* (matrix.matrix_point[2].x-divide_1_x)+ (matrix.matrix_point[2].y-divide_1_y)* (matrix.matrix_point[2].y-divide_1_y)); if(dis2<dis1) { binary[1] = 0; binarynumber[2] = 1; binarynumber[5] = 1; } else { binarynumber[1] = 1; binarynumber[4] = 1; } } else if(A>0.6&&A<5) { binarynumber[1] = 1; binarynumber[5] = 1; } else if(A>-5&&A<-0.6) { binarynumber[1] = 1; binarynumber[5] = 1; } else {//printf("***************************\n"); binarynumber[1] = 1; binarynumber[2] = 1; } } else if(poiline == 3) { binarynumber[1] = 1; binarynumber[2] = 1; binarynumber[5] = 1; } else if(poiline == 4) { binarynumber[1] = 1; binarynumber[2] = 1; binarynumber[4] = 1; binarynumber[5] = 1; } for(i=0;i<6;i++)
if(binarynumber[i]==1) binary[i]=binarynumber[i];
return 1; } /*------------------得到盲文-------------------*/ void getnumber(int binarynumber[],char number[]) { // char number[6]; //盲文 例:123456 int i; int j=0; for(i=0;i<6;i++) { if(binarynumber[i]==1) { number[j]=49+i; j++;
} } }
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/*-----------得到一组正规矩阵,当打入盲文时,就可以通过和正规作比较得到所打盲文
是什么。----------------------------------------------------------*/
void matrix_set()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -