结合使用cv2和matplotlib需要对图像处理有一定的理解。
当每个像素只有一个元素时,默认情况下matplotlib会把它转为一个0和1之间的值,然后赋予颜色。
可以试试这段代码,把cc改成不同的数值看看效果:
import matplotlib.pyplot as plt
cc=8
plt.imshow([[i*cc+j for j in range(cc)] for i in range(cc)])
plt.show()
附件是cc=4的结果。
在你的这段代码里,只有一个非零的值,它将使用最大值对应的黄色。0对应的值不是黑色。
如果每个像素是4个元素,那么最后一个是alpha通道,它取值为0时matplotlib认为是全透明的。
也就是说,如果你把图像初始化为全零、绘制三角形时颜色参数没有指定第四个元素,整个图像就是透明的,什么也不会显示。
【 在 feng321 的大作中提到: 】
: 改成4,就是一片空白。改成5或者2,报异常。改成1或者不写第三个参数,是黄色。3是红色,怎么回事?
:

--
修改:k7amd FROM 111.196.245.*
FROM 111.196.245.*