我有一个RGB图像(N x N x 3矩阵),我试图用matplotlib.pyplot.imshow()显示。红色通道与其他通道相比暗淡,但我还没有找到一种方法来改变vmin和vmax仅用于红色。是否可以改变每个通道的亮度/对比度?也许我可以直接操纵矩阵,但这听起来并不太有趣......
答案 0 :(得分:1)
使用numpy操作图像非常简单。
import matplotlib.pyplot as plt
import numpy as np
image = plt.imread("https://i.stack.imgur.com/9qe6z.png")
print image.shape
print image.max()
def channelnorm(im, channel, vmin, vmax):
c = (im[:,:,channel]-vmin) / (vmax-vmin)
c[c<0.] = 0
c[c>1.] = 1
im[:,:,channel] = c
return im
fig, (ax, ax2) = plt.subplots(ncols=2, figsize=(7,3))
ax.imshow(image)
vmin = 0.1
vmax = 0.5
channel = 0 # red
image2 = channelnorm(image, channel, vmin, vmax)
ax2.imshow(image2)
plt.show()