语法问题:循环输出时部分输出结果出现问题
-
先上出了问题的代码,如下:
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
-
中间的确有几个个位数
-
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]。