我目前正在尝试为我的学校项目编写脚本。它应该从摄像机馈送中获取一个像素并在该点处多次测量(用于噪声消除)。我目前不满意的代码部分如下所示:
canon.ScanXY(x,y)
img_1 = canon.FetchImage(0, 1 * 1)
canon.StopScan()
canon.ScanXY(x,y)
img_2 = canon.FetchImage(0, 1 * 1)
canon.StopScan()
...
canon.ScanXY(x,y)
img_xxx = canon.FetchImage(0, 1 * 1)
canon.StopScan()
上面的代码将返回一个名为img_xxx的字符串,其中xxx代表一个特定的数字。我想知道,如果有更简单的方法可以做到这一点。我试图循环该函数,但无法做到这一点,以便我每次迭代都有不同的结果。最后,我需要将所有这些添加到一起,以便从以前生成的所有内容中创建一个字符串:
img_final = (img_1 + img_2 + img_3 + ... + img_xxx)
最后使用
打印结果中的图片img = np.fromstring(img_final, dtype="uint8").reshape(8,8)
fig, ax = plt.subplots()
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
ax.set_xticklabels((0,1))
x=ax.imshow(img,cmap="gray")
代码有效,但如果我想改变任何东西,那真的需要花费很多时间。到目前为止,我正在使用64个或更少的字符串,但我想改进结果,所以我需要更多的迭代。任何帮助将不胜感激。
答案 0 :(得分:0)
img_final
应该是单个img
序列的总和。添加从控制台读取的整数序列的类比是:
final = int(input("First num: "))
for x in range(xxx-1):
num = int(input("Next num: "))
final += num
答案 1 :(得分:-1)
您需要使用functions。
将代码置于如下函数中:
<g:paginate>
这会为代码分配函数def get_image(x,y):
canon.ScanXY(x,y)
img = canon.FetchImage(0, 1 * 1)
canon.StopScan()
return img
,您可以使用
get_image
为了能够运行这个批次(即循环它),有一个返回图像的列表。
例如:
returned_image = get_image(dimension_x,dimension_y)