我有一个小项目,所以我在一周前开始对Python进行一些测试。我必须显示rgb图像的3个通道,但pyplot.imshow()
功能显示以下内容:
我想要显示红色,绿色和蓝色通道,如下所示:
这是我的代码,到目前为止:
from matplotlib import pyplot as plt
from PIL import Image
import numpy as np
img1 = np.array(Image.open('img1.png'))
figure, plots = plt.subplots(ncols=3, nrows=1)
for i, subplot in zip(range(3), plots):
temp = np.zeros(img1.shape, dtype='uint8')
temp = img1[:,:,i]
subplot.imshow(temp)
subplot.set_axis_off()
plt.show()
我不在任何笔记本电脑上工作。相反,我在PyCharm工作。我读过这篇文章:24739769。我检查了img1.dtype
是uint8
,所以我没有更多想法如何展示我想要的东西。
答案 0 :(得分:1)
您只需要进行一项微小的更改:from matplotlib import pyplot as plt
from PIL import Image
import numpy as np
img1 = np.array(Image.open('img1.png'))
figure, plots = plt.subplots(ncols=3, nrows=1)
for i, subplot in zip(range(3), plots):
temp = np.zeros(img1.shape, dtype='uint8')
temp[:,:,i] = img1[:,:,i]
subplot.imshow(temp)
subplot.set_axis_off()
plt.show()
。
使用您展示的第一张图片的完整且可验证的示例:
def signupUser(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save(commit=False)
username = form.cleaned_data.get('username')
raw_password = form.cleaned_data.get('password1')
form.save()
user = authenticate(username=username, password=raw_password)
if user is not None:
login(request, user)
return redirect('home')
else:
form = SignUpForm()
return render(request, 'signup.html', {'form': form})