【问题标题】:Different Result of plt.imshow() and cv2.imshow() in JupyterJupyter 中 plt.imshow() 和 cv2.imshow() 的不同结果
【发布时间】:2021-03-22 15:44:37
【问题描述】:

我正在尝试在 Jupyter Notebook 上将图像颜色更改为灰色 令人困惑的是,使用 cv2.imshow("gray", gray_image) 可以在警报窗口中显示灰度图像。 Result of cv2.imshow("gray", gray_image)

而且我使用 plt.imshow(gray_image) 无法显示灰度图像,但它是绿色的。 Result of plt.imshow(gray_image)

那么,如何在 Jupyter Notebook 上显示 cv2.imshow(gray_image) 结果的灰度?谢谢 这是我的代码:

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)

【问题讨论】:

    标签: python opencv jupyter-notebook jupyter


    【解决方案1】:

    如果你不想使用CV,只需使用cmap并将其映射到灰度即可。 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()
    

    【讨论】:

    • 谢谢。那么,使用 CV 的另一种方法是什么?
    • @MattTin 我相信 cv2.imshow() 应该可以工作。
    • 哦...因为使用 cv2.imshow() 无法在 Jupyter Notebook 中显示结果 :(
    猜你喜欢
    • 1970-01-01
    • 2021-09-13
    • 2023-03-21
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    相关资源
    最近更新 更多