⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 process.h~

📁 it is about embeded system
💻 H~
📖 第 1 页 / 共 4 页
字号:
            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 + -