在python中更改列表的值
我在opencv库的harris角检测器中找到了这段代码在python中更改列表的值,python,Python,我在opencv库的harris角检测器中找到了这段代码 img[dst>0.01*dst.max()]=[0,0,255] 其中,img是一个表示图像的列表,dst是一个来自库的列表 有人能描述一下代码的含义吗?我猜,它是一个蓝色的圆圈 右侧似乎是ab RGB值,img是一个2D像素阵列,dst听起来像距离。因此有一个半径为最大距离0.01倍的圆 我猜这是一个numpy数组,而不是列表。这是逻辑索引。比较返回布尔值数组。无论这些值是True,img的相应元素设置为[0,0255]。更直
img[dst>0.01*dst.max()]=[0,0,255]
其中,img
是一个表示图像的列表,dst
是一个来自库的列表
有人能描述一下代码的含义吗?我猜,它是一个蓝色的圆圈
右侧似乎是ab RGB值,img是一个2D像素阵列,dst听起来像距离。因此有一个半径为最大距离0.01倍的圆 我猜这是一个numpy数组,而不是列表。这是逻辑索引。
比较返回布尔值数组。无论这些值是True
,img
的相应元素设置为[0,0255]
。更直接地说,它创建了一个蓝色点环,其中内部空圆的半径是最大值的1%,其中img是一个列表“不,不是。我不知道具体细节,但请将其分解<代码>img[dst>0.01*dst.max()]=[0,0255]img
是支持索引的“东西”,因为您可以使用[]
——它可能是一个列表@高雄,想详细说明一下吗?第一组[]
中的所有内容将确定=
右侧符号上的内容在img
中的位置。索引仅适用于整数,因此我们知道dst>0.01*dst.max()
的结果必须是整数。我不知道哪个数据类型dst
是(可能是一个类吗?),但是如果你写type(dst)
和dir(dst)
python会向你展示它的数据类型和方法。@jDo你说:dst>0.01*dst.max()
必须是一个整数,当然可能是,但我打赌不是(从未见过一个类实现了@Goyo不,我想你是对的。OpenCV将使用更有效的东西,因为它处理一些相当繁重的计算。其他答案似乎更灵通,他们也同意你的看法。我只是在“分解UFO”(也就是说,当你完全不知道自己在看什么的时候,用一种天真的方法去弄清楚东西)。img是numpy数组,很抱歉我错过了这个