• 安装星瞳实验室APP,快速收到回复。扫描二维码或者点击 https://singtown.com/app/
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 一个提问,一个帖子,标题为问题的介绍
  • 请贴出具体的代码,与报错提示。
  • 代码一定要让别人可以运行的文本,不要贴图片
  • 语法问题:循环输出时部分输出结果出现问题



    • 先上出了问题的代码,如下:

      import sensor, time, image
      
      sensor.reset()
      sensor.set_contrast(1)
      sensor.set_gainceiling(16)
      sensor.set_framesize(sensor.QQVGA)
      sensor.set_pixformat(sensor.GRAYSCALE)
      sensor.skip_frames(time = 2000)
      
      face_cascade = image.HaarCascade("frontalface", stages=25)
      print(face_cascade)
      
      clock = time.clock()
      
      a = 10
      
      while (a):
          clock.tick()
      
          img = sensor.snapshot()
      
          objects = img.find_features(face_cascade, threshold=0.75, scale_factor=1.25)
      
          for r in objects:
              img.draw_rectangle(r)
              a -= 1
      
              img.find_edges(image.EDGE_CANNY, threshold=(50, 80))
              img.invert()
      
      for x in range(r[0],r[0]+r[3]):
          for y in range(r[1],r[1]+r[3]):
              pixiv_grayscale = img.get_pixel(x,y)
              if pixiv_grayscale == 0:
                  print (x,y)
      
      

      range里的l是感兴趣区的边长。这段代码的目的是检测感兴趣区里灰度小于等于零的点,并把点的坐标输出出来。

      但是输出结果出现了问题,问题如下:

      1,
      35 38
      3
      34 34
      34 35
      输出会像上面的几组数据,突然出现一位的情况。

      2,
      30 1 11
      39 340 41
      还有这种,在一组数据里突然出现三个数的,,

      3,
      65 14
      65
      66 34
      6
      65 17
      还有突然乱序的,就像刚刚还在35 1;35 2;结果突然来了几个36 3;36 4;然后又回到35 3;这种,,



    • 需要全部的代码,才能复现问题。

      另外,代码需要格式。



    • 编辑的时候有格式来着,,提交之后就没有缩进了,,



    • 来自星瞳实验室APP: 玩转星瞳论坛https://forum.singtown.com/topic/57



    • 你这自己加了几个下划线是啥意思,不是给你发链接了嘛



    • 不是,,当时还没看到链接,,现在改好了



    • 我试了一下你的代码,我的输出结果相当与把(1,1)到(72,72)一个不漏地遍历了一遍。= =

      1 1
      1 5
      1 6
      1 7
      1 8
      1 9
      1 10
      1 11
      1 12
      1 13
      1 14
      1 15
      1 16
      1 17
      1 18
      1 19
      1 20
      1 21
      1 22
      1 23
      1 24
      1 25
      1 26
      1 27
      1 28
      1 29
      1 32
      1 34
      1 35
      1 36
      1 39
      1 40
      1 41
      1 49
      1 50
      1 51
      1 52
      1 53
      1 54
      1 55
      1 56
      1 57
      1 58
      1 59
      1 60
      1 61
      1 62
      1 63
      1 64
      1 65
      2 1
      2 2
      2 3
      2 4
      2 7
      2 8
      2 9
      2 10
      2 11
      2 12
      2 13
      2 14
      2 15
      2 16
      2 17
      2 18
      2 19
      2 20
      2 21
      2 22
      2 23
      2 24
      2 25
      2 26
      2 27
      2 28
      2 29
      2 30
      2 31
      2 32
      2 33
      2 34
      2 35
      2 36
      2 37
      2 38
      2 39
      2 43
      2 44
      2 45
      2 46
      2 47
      2 48
      2 49
      2 50
      2 51
      2 52
      2 53
      2 54
      2 55
      2 56
      2 57
      2 58
      2 59
      2 60
      2 61
      2 62
      2 63
      2 64
      2 65
      3 1
      3 2
      3 3
      3 4
      3 5
      3 9
      3 10
      3 11
      3 12
      3 13
      3 14
      3 15
      3 16
      3 17
      3 18
      3 19
      3 20
      3 21
      3 22
      3 23
      3 24
      3 25
      3 26
      3 27
      3 28
      3 29
      3 30
      3 31
      3 32
      3 33
      3 34
      3 35
      3 36
      3 37
      3 41
      3 42
      3 43
      3 44
      3 45
      3 46
      3 47
      3 48
      3 49
      3 50
      3 51
      3 52
      3 53
      3 54
      3 55
      3 56
      3 57
      3 58
      3 59
      3 60
      3 61
      3 62
      3 63
      3 64
      3 65
      4 1
      4 2
      4 3
      4 4
      4 5
      4 6
      4 7
      4 10
      4 11
      4 12
      4 13
      4 14
      4 15
      4 16
      4 17
      4 18
      4 19
      4 20
      4 21
      4 22
      4 23
      4 24
      4 25
      4 26
      4 27
      4 28
      4 29
      4 30
      4 31
      4 34
      4 35
      4 39
      4 40
      4 41
      4 42
      4 43
      4 44
      4 45
      4 46
      4 47
      4 48
      4 49
      4 50
      4 51
      4 52
      4 53
      4 54
      4 55
      4 56
      4 57
      4 58
      4 59
      4 60
      4 61
      4 62
      4 63
      4 64
      4 65
      5 1
      5 2
      5 3
      5 4
      5 5
      5 6
      5 7
      5 8
      5 9
      5 12
      5 13
      5 14
      5 15
      5 16
      5 17
      5 18
      5 19
      5 20
      5 21
      5 22
      5 23
      5 24
      5 25
      5 26
      5 27
      5 28
      5 29
      5 30
      5 31
      5 32
      5 33
      5 34
      5 37
      5 38
      5 39
      5 40
      5 41
      5 42
      5 43
      5 44
      5 45
      5 46
      5 47
      5 48
      5 49
      5 50
      5 51
      5 52
      5 53
      5 54
      5 55
      5 56
      5 57
      5 58
      5 59
      5 60
      5 61
      5 62
      5 63
      5 64
      5 65
      6 1
      6 2
      6 3
      6 4
      6 5
      6 6
      6 7
      6 8
      6 9
      6 10
      6 13
      6 14
      6 15
      6 16
      6 17
      6 18
      6 19
      6 20
      6 21
      6 22
      6 23
      6 24
      6 25
      6 26
      6 27
      6 28
      6 29
      6 30
      6 31
      6 32
      6 33
      6 34
      6 35
      6 37
      6 38
      6 39
      6 40
      6 41
      6 42
      6 43
      6 44
      6 45
      6 46
      6 47
      6 48
      6 49
      6 50
      6 51
      6 52
      6 53
      6 54
      6 55
      6 56
      6 57
      6 58
      6 59
      6 60
      6 61
      6 62
      6 63
      6 64
      6 65
      7 1
      7 2
      7 3
      7 4
      7 5
      7 6
      7 7
      7 8
      7 9
      7 10
      7 11
      7 15
      7 16
      7 17
      7 18
      7 19
      7 20
      7 21
      7 22
      7 23
      7 24
      7 25
      7 26
      7 27
      7 28
      7 29
      7 30
      7 31
      7 32
      7 33
      7 34
      7 35
      7 36
      7 37
      7 38
      7 39
      7 40
      7 41
      7 42
      7 43
      7 44
      7 45
      7 46
      7 47
      7 48
      7 49
      7 50
      7 51
      7 52
      7 53
      7 54
      7 55
      7 56
      7 57
      7 58
      7 59
      7 60
      7 61
      7 62
      7 63
      7 64
      7 65
      8 1
      8 2
      8 3
      8 4
      8 5
      8 6
      8 7
      8 8
      8 9
      8 10
      8 11
      8 12
      8 13
      8 16
      8 17
      8 18
      8 19
      8 20
      8 21
      8 22
      8 23
      8 24
      8 25
      8 26
      8 27
      8 28
      8 29
      8 30
      8 31
      8 32
      8 33
      8 34
      8 35
      8 36
      8 37
      8 38
      8 39
      8 40
      8 41
      8 42
      8 43
      8 44
      8 45
      8 46
      8 47
      8 48
      8 49
      8 50
      8 51
      8 52
      8 53
      8 54
      8 55
      8 56
      8 57
      8 58
      8 59
      8 60
      8 61
      8 62
      8 63
      8 64
      8 65
      9 1
      9 2
      9 3
      9 4
      9 5
      9 6
      9 7
      9 8
      9 9
      9 10
      9 11
      9 12
      9 13
      9 14
      9 18
      9 19
      9 20
      9 21
      9 22
      9 23
      9 24
      9 25
      9 26
      9 27
      9 28
      9 29
      9 30
      9 31
      9 32
      9 33
      9 34
      9 35
      9 36
      9 37
      9 38
      9 39
      9 40
      9 41
      9 42
      9 43
      9 44
      9 45
      9 46
      9 47
      9 48
      9 49
      9 50
      9 51
      9 52
      9 53
      9 54
      9 55
      9 56
      9 57
      9 58
      9 59
      9 60
      9 61
      9 62
      9 63
      9 64
      9 65
      10 1
      10 2
      10 3
      10 4
      10 5
      10 6
      10 7
      10 8
      10 9
      10 10
      10 11
      10 12
      10 13
      10 14
      10 15
      10 16
      10 19
      10 20
      10 21
      10 22
      10 23
      10 24
      10 25
      10 26
      10 27
      10 28
      10 29
      10 30
      10 31
      10 32
      10 33
      10 34
      10 35
      10 36
      10 37
      10 38
      10 39
      10 40
      10 41
      10 42
      10 43
      10 44
      10 45
      10 46
      10 47
      10 48
      10 49
      10 50
      10 51
      10 52
      10 53
      10 54
      10 55
      10 56
      10 57
      10 58
      10 59
      10 60
      10 61
      10 62
      10 63
      10 64
      10 65
      11 1
      11 2
      11 3
      11 4
      11 5
      11 6
      11 7
      11 8
      11 9
      11 10
      11 11
      11 12
      11 13
      11 14
      11 15
      11 16
      11 17
      11 21
      11 22
      11 23
      11 24
      11 25
      11 26
      11 27
      11 28
      11 29
      11 30
      11 31
      11 32
      11 33
      11 34
      11 35
      11 36
      11 37
       49
      12 50
      12 51
      0
      11 41
      11 42
      11 43
      11 44
      11 45
      11 46
      11 47
      11 48
      11 49
      11 50
      11 51
      11 52
      11 53
      11 54
      11 55
      11 56
      11 57
      11 58
      11 59
      11 60
      11 61
      11 62
      11 63
      11 64
      11 65
      12 1
      12 2
      12 3
      12 4
      12 5
      12 6
      12 7
      12 8
      12 9
      12 10
      12 11
      12 12
      12 13
      12 14
      12 15
      12 16
      12 17
      12 18
      12 19
      12 22
      12 23
      12 24
      12 25
      12 26
      12 27
      12 28
      12 29
      12 30
      12 31
      12 32
      12 33
      12 34
      12 35
      12 36
      12 37
      12 38
      12 39
      12 40
      12 41
      12 42
      12 43
      12 44
      12 45
      12 46
      12 47
      12 48
      12
      13 62
      13 63
      13 64
      13 65
      14 1
      14 2
      14 3
      14 4
      14 5
      14 6
      14 7
      14 8
      14 9
      14 10
      14 11
      14 12
      14 13
      14 14
      14 15
      14 16
      14 17
      14 18
      14 19
      14 20
      14 21
      14 22
      14 25
      14 26
      14 27
      14 28
      14 29
      14 30
      14 31
      14 32
      14 33
      14 34
      14 35
      14 36
      14 37
      14 38
      14 39
      14 40
      14 41
      14 42
      14 43
      14 44
      14 45
      14 46
      14 47
      14 48
      14 49
      14 50
      14 51
      14 52
      14 53
      14 54
      14 55
      14 56
      14 57
      14 58
      14 59
      14 60
      14 61
      14 62
      14 63
      14 64
      14 65
      15 1
      15 2
      15 3
      15 4
      15 5
      15 6
      15 7
      15 8
      15 9
      15 10
      15 11
      15 12
      15 13
      15 14
      15 15
      15 16
      15 17
      15 18
      15 19
      15 20
      15 21
      15 22
      15 23
      15 27
      15 28
      15 29
      15 30
      15 31
      15 32
      15 33
      15 34
      15 35
      15 36
      15 37
      15 38
      15 39
      15 40
      15 41
      15 42
      15 43
      15 44
      15 45
      15 46
      15 47
      15 48
      15 49
      15 50
      15 51
      15 52
      15 53
      15 54
      15 55
      15 56
      15 57
      15 58
      15 59
      15 60
      15 61
      15 62
      15 63
      15 64
      15 65
      


    • 中间的确有几个个位数



    • @yibuki

      for x in range(1,l):
          for y in range(1,l):
      

      你的感兴趣区的左上角顶点应该不是(1,1)吧,应该是你之前的(r[0], r[1]),为什么遍历的时候要从(1,1)开始?



    • 对对对,我又改了一下,我想输出灰度为零的点。麻烦您看看这回逻辑上有没有错误。不过输出的数据还是有问题,,



    • print(r[0], r[1], r[2], r[3])
      
      for x in range(r[0], r[0]+r[2]):
          for y in range(r[1], r[1]+r[3]):   
              pixiv_grayscale = img.get_pixel(x, y)
              if pixiv_grayscale == 0:
                  print("%d  %d" % (x, y))
      

      把你的最后一段代码修改了,逻辑和输出都正常了。

      首先,逻辑上,哎,你改回来了,那我就不说了。。。反正和我改的一样。。。(不过你这一行for x in range(r[0],r[0]+r[3]): 还是错了一个数字。。)

      输出数据错误的问题,请使用python格式化输出

       print("%d  %d" % (x, y))
      

      直接print (x,y)有时候会有错误,错误的原因。。。容我再找找,似乎是python语言自己的问题。。。



    • @yuan 哦哦哦,谢谢谢谢。
      哈,对应该是r[2]。