简体   繁体   English

Jupyter 中 plt.imshow() 和 cv2.imshow() 的不同结果

[英]Different Result of plt.imshow() and cv2.imshow() in Jupyter

I'm trying to change to image color to Gray on Jupyter Notebook it's confusing that using the cv2.imshow("gray", gray_image) can show the grayscale image in the alert window.我正在尝试在 Jupyter Notebook 上将图像颜色更改为灰色,令人困惑的是,使用 cv2.imshow("gray", gray_image) 可以在警报 window 中显示灰度图像。 Result of cv2.imshow("gray", gray_image) cv2.imshow("gray", gray_image) 的结果

And I use the plt.imshow(gray_image) can not show the grayscale image but it is green.而且我使用 plt.imshow(gray_image) 不能显示灰度图像,但它是绿色的。 Result of plt.imshow(gray_image) plt.imshow(gray_image) 的结果

So, how can I show the grayscale which is the result of cv2.imshow(gray_image) on Jupyter Notebook?那么,如何在 Jupyter Notebook 上显示 cv2.imshow(gray_image) 结果的灰度? Thank You Here are my code:谢谢这里是我的代码:

import cv2
from  matplotlib import pyplot as plt
%matplotlib inline

filename = 'photo.jpg'
img = cv2.imread('cat.jpg')
img = cv2.resize(img, (540, 540))
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
#using cv2
cv2.imshow("gray",gray_image)
cv2.waitKey(0)
#using plt
plt.imshow(gray_image)

If you do not want to use CV, just use cmap and map it to the grayscale.如果不想用CV,就用cmap和map把它转灰度。 imshow works pretty well here. imshow 在这里工作得很好。

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

fname = 'Capture.png'
image = Image.open(fname).convert("L")
arr = np.asarray(image)
plt.imshow(arr, cmap='gray', vmin=0, vmax=255)
plt.show()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM