python为图像设置标记_图像像素上的matplotlib标记/遮罩

您可以使用蒙版数组或通过设置RGBA图像中的alpha值来实现半透明覆盖。这两种方法都是经过处理的(用三个半透明的红色正方形放在圆形图案上的例子),它们给出了相似的图像(所以我只展示一个):

from pylab import *

from numpy import ma

x = y = linspace(-6, 6, 100)

X, Y = meshgrid(x, y)

z3 = X*X + Y*Y # circular pattern

# first, do this with a masked array

figure()

# z4 = 3 diagonal square

# zm = a uniform image (ones), with a mask of squares (~z4)

z4 = np.repeat(np.repeat(eye(3, dtype=bool), 40, axis=0), 40, axis=1)

zm = ma.masked_where(~z4, ones((120,120)))

imshow(z3, cmap=cm.jet)

imshow(zm, cmap=cm.bwr, alpha=.3, vmin=0, vmax=1) #cm.bwr is an easy way to get red

# do this by changing alpha for each pixel

figure()

z5 = zeros((120, 120, 4), dtype=float)

z5[..., 0] = 1

z5[..., 3] = .4*z4.astype(float)

imshow(z3, cmap=cm.jet)

imshow(z5)

show()

我认为这两种方法在所有情况下都能产生相同的结果,但是:

1。如果遮罩或构图变得复杂,则遮罩数组可以是一种更直接的方法,并且遮罩使您在绘制覆盖图像时更为灵活,因为例如,您可以使用彩色贴图而不是为每个像素指定完整的RGBA,但是,

2.遮罩数组方法不像RGBA那样提供对alpha值的完全逐像素控制。在

^{pr2}$

这有点疯狂,但事情是这样的:主图像是一个从蓝色到红色的圆形图案(z3)。然后有一些垂直的条带,可以模糊地遮住这个(z1),但只在图形的一半,在另一半的窄的交替对角线带(由于遮罩)。下面是一个使用遮罩数组的更复杂的图像:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值