我在其中一个代码中遇到了一些非常奇怪的行为。它看起来像这样:
count=0
while True:
print "loop number : ", count
print "minx : ", minx # [[118.]]
image=camera.read_frame() # C function, grab a frame and return a Ndarray with the image, does NOT interact with minx.
print "type of minx : ", type(minx) # numpy.ndarray
print "inside value of minx : ", minx[0][0] # 118.
print "minx : ", minx # freeze execution on the n-th time, computer dependant.
count+=1
#do other stuff
所以我有这个循环:我抓住一个框架,对其进行一些点检测,并将该点的坐标存储在变量minx中。 一切正常,但在第n个循环(我的计算机上的1870,但它依赖于计算机),对抓取图像的C函数的调用不起作用并且返回的数组已损坏。 这是我正在研究的问题,但我想知道的是:
minx
变量?为了澄清,我可以在控制台上阅读:
循环次数:0
minx:[[118.]]
minx的类型:numpy.ndarray
minx的内部值:118。
minx:[[118。]]
......#1869循环
循环次数:1869
minx:[[163.]]
minx的类型:numpy.ndarray
minx的内部值:163。
冻结在这里
我没有任何错误/异常,它只是冻结。我也没有任何内存泄漏。我知道这是由C函数引起的,因为我回到它的旧版本并且它可以工作。
我能弄清楚的是,当它们完全不相关时,C函数如何对minx变量产生影响?为什么我可以访问minx的内部值而不是整个数组?