我正在与numpy和cv2一起进行pyqt项目。基本上,我想使用二进制numpy掩码(1024, 1024)
来创建一个4通道的单色图像(1024, 1024, 4)
,其中掩码中的所有1都是粉红色的,0都是不可见的。然后转换图像并在QScene中显示为覆盖,以突出显示另一个图像中的一些像素。在
我目前的方法可以做到这一点,但速度太慢了,我确信numpy提供了更方便的方式。在
color = (255, 0, 238, 100)
r = (mask * color[0]).reshape((w*h))
g = (mask * color[1]).reshape((w*h))
b = (mask * color[2]).reshape((w*h))
a = (mask * color[3]).reshape((w*h))
rgba = np.dstack((r, g, b, a)).reshape((w, h, 4))
transposed = np.transpose(rgba, axes=[1, 0, 2])
有没有更好的方法来显示蒙版覆盖?我不坚持使用numpy,但是,重要的是我可以设置颜色,因为我将需要几种颜色。在
是的!使用^{} 来清理它并有一个
one-liner
,如下-说明:
[...,None]
基本上将其所有维度推到前面,并创建一个单例dim(dim withlength=1
)作为最后一个轴。为了引入这个新轴,我们使用了^{None
的别名。因此,我们将实现对转置数组沿其最后一个轴与color
元素对齐的广播。在broadcasted
操作。在您可以在开始时创建新的axis部件,然后使用},这样会更接近原始代码。所以,我们也可以:
^{pr2}$np.transpose
或{而且
相关问题 更多 >
编程相关推荐