OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2101|回复: 3

f1二值化图像坐标提取问题

[复制链接]

3

主题

10

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-7-31
在线时间
7 小时
发表于 2019-8-3 16:34:05 | 显示全部楼层 |阅读模式
1金钱
void OV7725_camera_refresh(void)
{
u32 i,j;
  u16 color;
if(ov_sta)//ÓÐÖ¡ÖжϸüÐÂ
{
  LCD_Scan_Dir(U2D_L2R);  //´ÓÉϵ½ÏÂ,´Ó×óµ½ÓÒ
  LCD_Set_Window((lcddev.width-OV7725_WINDOW_WIDTH)/2,(lcddev.height-OV7725_WINDOW_HEIGHT)/2,OV7725_WINDOW_WIDTH,OV7725_WINDOW_HEIGHT);//½«ÏÔÊ¾ÇøÓòÉèÖõ½ÆÁÄ»ÖÐÑë
  if(lcddev.id==0X1963)
   LCD_Set_Window((lcddev.width-OV7725_WINDOW_WIDTH)/2,(lcddev.height-OV7725_WINDOW_HEIGHT)/2,OV7725_WINDOW_HEIGHT,OV7725_WINDOW_WIDTH);//½«ÏÔÊ¾ÇøÓòÉèÖõ½ÆÁÄ»ÖÐÑë
  LCD_WriteRAM_Prepare();     //¿ªÊ¼Ð´ÈëGRAM
  OV7725_RRST=0;    //¿ªÊ¼¸´Î»¶ÁÖ¸Õë
  OV7725_RCK_L;
  OV7725_RCK_H;
  OV7725_RCK_L;
  OV7725_RRST=1;    //¸´Î»¶ÁÖ¸Õë½áÊø
  OV7725_RCK_H;
  for(i=0;i<OV7725_WINDOW_HEIGHT;i++)
  {
   for(j=0;j<OV7725_WINDOW_WIDTH;j++)
   {
    OV7725_RCK_L;
    color=GPIOC->IDR&0XFF; //&para;&Aacute;&Ecirc;&yacute;&frac34;&Yacute;
    OV7725_RCK_H;
    OV7725_RCK_L;
    OV7725_RCK_H;
   
    //&sup2;&Ecirc;&Eacute;&laquo;×&ordf;&raquo;&Ograve;&para;&Egrave;&Euml;&atilde;·¨
     color=GRAY_2_RGB565(color);   
    //&ordm;&Uacute;°×&para;&thorn;&Ouml;&micro;&raquo;&macr;
     if(color<0x3000)
     {
        color=0x0000;//&ordm;&Uacute;&Eacute;&laquo;
     }   
     else
       {        
        color=0xffff;//°×&Eacute;&laquo;     
       }
      if(color==0x0000)
      {
       if(i>1&&i<239&&j<319&&j>1)
         {
          //±é&Agrave;ú&raquo;&ntilde;&Egrave;&iexcl;&Acirc;&Ouml;&Agrave;&ordf;×&oslash;±ê
           if(i>X_MAX) X_MAX=i;
           if(i<X_MIN) X_MIN=i;
         
         
           if(j>Y_MAX) Y_MAX=j;
            if(j<Y_MIN) Y_MIN=j;
          //&raquo;&ntilde;&Egrave;&iexcl;&Ouml;&Ecirc;&ETH;&Auml;
           X=(X_MAX+X_MIN)/2;
           Y=(Y_MAX+Y_MIN)/2;
           
         }
      }
      //&raquo;&ntilde;&Egrave;&iexcl;&frac14;&acute;&Ecirc;&Oacute;&Ograve;°&Ouml;&ETH;&ETH;&Auml;&Icirc;&raquo;&Ouml;&Atilde;
     if(j==160)
      color =0x2222;//&para;&Ocirc;&Ecirc;&micro;&frac14;&Ecirc;&Acirc;·&frac34;&para;&cedil;&frac12;&frac14;&Oacute;&Aacute;í&Iacute;&acirc;&Ograve;&raquo;&Ouml;&Ouml;&Ntilde;&Otilde;&Eacute;&laquo;&Iuml;&Ocirc;&Ecirc;&frac34;
     else
     ;
      if(i==120)
      color =0x2222;//&para;&Ocirc;&Ecirc;&micro;&frac14;&Ecirc;&Acirc;·&frac34;&para;&cedil;&frac12;&frac14;&Oacute;&Aacute;í&Iacute;&acirc;&Ograve;&raquo;&Ouml;&Ouml;&Ntilde;&Otilde;&Eacute;&laquo;&Iuml;&Ocirc;&Ecirc;&frac34;
     else
     ;
    LCD->LCD_RAM=color;  
   }
  }
  printf("Centroid_X_MAX:%d\r\n",X_MAX); //&acute;ò&Oacute;&iexcl;X_MAX
  printf("Centroid_X_MIN:%d\r\n",X_MIN); //&acute;ò&Oacute;&iexcl;X_MIN
  
  printf("Centroid_Y_MAX:%d\r\n",Y_MAX); //&acute;ò&Oacute;&iexcl;Y_MAX
  printf("Centroid_Y_MIN:%d\r\n",Y_MIN); //&acute;ò&Oacute;&iexcl;Y_MIN
  
  printf("Centroid_X:%d\r\n",X); //&acute;ò&Oacute;&iexcl;y
  printf("Centroid_Y:%d\r\n",Y); //&acute;ò&Oacute;&iexcl;y
   ov_sta=0;     //&Ccedil;&aring;&Aacute;&atilde;&Ouml;&iexcl;&Ouml;&ETH;&para;&Iuml;±ê&frac14;&Ccedil;
  ov_frame++;
  LCD_Scan_Dir(DFT_SCAN_DIR); //&raquo;&Ouml;&cedil;&acute;&Auml;&not;&Egrave;&Iuml;&Eacute;¨&Atilde;è·&frac12;&Iuml;ò
}
}


为什么这样提取出的最大值,最小值和质心都是错误的

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-8-4 01:47:08 | 显示全部楼层
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2019-8-1
在线时间
4 小时
发表于 2019-8-4 16:24:06 | 显示全部楼层
看我发的帖子,不知道为什么不能直接回复代码。
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2019-8-1
在线时间
4 小时
发表于 2019-8-4 16:26:31 | 显示全部楼层
chenqf 发表于 2019-8-4 16:24
看我发的帖子,不知道为什么不能直接回复代码。

你代码里坐标求的最大值最小值有问题,先看懂是如何扫描的,坐标是怎么判断的,你就知道了。我发的代码里用了另外一种方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-1 02:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表