# Single Color Code Tracking Example # # This example shows off single color code tracking using the CanMV Cam. # # A color code is a blob composed of two or more colors. The example below will # only track colored objects which have both the colors below in them. import sensor, image, time, math # Color Tracking Thresholds (L Min, L Max, A Min, A Max, B Min, B Max) # The below thresholds track in general red/green things. You may wish to tune them... thresholds = [(30, 100, 15, 127, 15, 127), # generic_red_thresholds -> index is 0 so code == (1 << 0) (30, 100, -64, -8, -32, 32)] # generic_green_thresholds -> index is 1 so code == (1 << 1) # Codes are or'ed together when "merge=True" for "find_blobs". sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time = 2000) sensor.set_auto_gain(False) # must be turned off for color tracking sensor.set_auto_whitebal(False) # must be turned off for color tracking clock = time.clock() # Only blobs that with more pixels than "pixel_threshold" and more area than "area_threshold" are # returned by "find_blobs" below. Change "pixels_threshold" and "area_threshold" if you change the # camera resolution. "merge=True" must be set to merge overlapping color blobs for color codes. while(True): clock.tick() img = sensor.snapshot() for blob in img.find_blobs(thresholds, pixels_threshold=100, area_threshold=100, merge=True): if blob.code() == 3: # r/g code == (1 << 1) | (1 << 0) # These values depend on the blob not being circular - otherwise they will be shaky. # if blob.elongation() > 0.5: # img.draw_edges(blob.min_corners(), color=(255,0,0)) # img.draw_line(blob.major_axis_line(), color=(0,255,0)) # img.draw_line(blob.minor_axis_line(), color=(0,0,255)) # These values are stable all the time. img.draw_rectangle(blob.rect()) img.draw_cross(blob.cx(), blob.cy()) # Note - the blob rotation is unique to 0-180 only. img.draw_keypoints([(blob.cx(), blob.cy(), int(math.degrees(blob.rotation())))], size=20) print(clock.fps())
时间: 2024-04-09 12:31:51 浏览: 25
这段代码是一个单色码跟踪的示例,使用了CanMV Cam进行跟踪。它会跟踪具有下列颜色的物体:
1. 红色:亮度范围在30到100之间,A通道范围在15到127之间,B通道范围在15到127之间。
2. 绿色:亮度范围在30到100之间,A通道范围在-64到-8之间,B通道范围在-32到32之间。
代码中使用了图像传感器来捕获图像,并进行颜色跟踪。通过设置阈值来确定跟踪颜色的范围。然后,使用`find_blobs`函数找到符合阈值要求的颜色块,并绘制出来。最后,打印出每秒处理的帧数。
请注意,这段代码中的阈值是一些通用的阈值,你可能需要根据实际情况进行调整。
相关问题
Git: There is no tracking information for the current branch.
This error message usually occurs when you try to push or pull from a Git repository without specifying the remote branch. To resolve this issue, you can set up tracking for the current branch by using the following command:
```
git branch --set-upstream-to=<remote>/<branch>
```
Replace `<remote>` with the name of the remote repository (e.g., origin) and `<branch>` with the name of the branch you want to track. Once you set up the tracking information, you should be able to push and pull from the repository without seeing that error message.
There is no tracking information for the current branch. Please specify which branch you want to merge with.
It seems like you are facing a git error. This error message indicates that git is not able to find any tracking information for the current branch and therefore, cannot determine which branch to merge with. To resolve this issue, you can try setting the upstream branch using the following command:
```
git branch --set-upstream-to=<remote>/<branch> <local_branch>
```
Replace `<remote>` with the name of the remote repository, `<branch>` with the name of the remote branch, and `<local_branch>` with the name of the local branch you are trying to merge. This will set the upstream branch and allow git to determine which branch to merge with.