回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图将名为“start”的属性设置为1或2,具体取决于对象首先穿过的线。你知道吗</p>
<p>我得到的错误是“name'start'未定义”</p>
<p>我试图在网上搜索,但似乎找不到任何类似的问题。你知道吗</p>
<p>代码如下:</p>
<p>我已经尝试将其设置为start[I]=1,并且也设置为start[arids][
currentcarsindex[i]]=1</p>
<pre><code>for i in range(currentcars): # loops through all current car ids on screen
# grabs centroid of certain carid for current frame
curcent = df.iloc[int(framenumber)][str(carids[currentcarsindex[i]])]
# grabs centroid of certain carid for previous frame
oldcent = df.iloc[int(framenumber - 1)][str(carids[currentcarsindex[i]])]
if curcent: # if there is a current centroid
# On-screen text for current centroid
cv2.drawMarker(image, (int(curcent[0]), int(curcent[1])), (0, 0, 255), cv2.MARKER_STAR, markerSize=5,
thickness=1, line_type=cv2.LINE_AA)
if oldcent: # checks if old centroid exists
# adds radius box from previous centroid to current centroid for visualization
xstart = oldcent[0] - maxrad
ystart = oldcent[1] - maxrad
xwidth = oldcent[0] + maxrad
yheight = oldcent[1] + maxrad
cv2.rectangle(image, (int(xstart), int(ystart)), (int(xwidth), int(yheight)), (0, 125, 0), 1)
# checks if old centroid is on or below line and curcent is on or above line
# to count cars and that car hasn't been counted yet
if oldcent[1] >= lineypos2 and curcent[1] <= lineypos2 and carids[
currentcarsindex[i]] not in caridscrossed:
cv2.line(image, (0, lineypos2), (width, lineypos2), (0, 0, 255), 5)
start = 1
# checks if old centroid is on or above line and curcent is on or below line
# to count cars and that car hasn't been counted yet
elif oldcent[1] <= lineypos3 and curcent[1] >= lineypos3 and carids[
currentcarsindex[i]] not in caridscrossed:
cv2.line(image, (0, lineypos2), (width, lineypos2), (0, 0, 125), 5)
start = 2
if oldcent[1] >= lineypos3 and curcent[1] <= lineypos3 and start == 1 and carids[
currentcarsindex[i]] not in caridscrossed:
carscrossedup = carscrossedup + 1
caridscrossed.append(
currentcarsindex[i]) # adds car id to list of count cars to prevent double counting
# checks if old centroid is on or above line and curcent is on or below line
# to count cars and that car hasn't been counted yet
elif oldcent[1] <= lineypos2 and curcent[1] >= lineypos2 and start == 2 and carids[
currentcarsindex[i]] not in caridscrossed:
carscrosseddown = carscrosseddown + 1
caridscrossed.append(
currentcarsindex[i])
</code></pre>