cv2_imshow 返回 PIL 对象而不是在 Colab 上显示图像

问题描述 投票:0回答:1

我在 Colab 上显示图像时遇到问题。我运行的代码位于我在 Colab 上运行的 .py 文件中,因此在该文件中我导入了 cv2_imshow 而不是普通的 cv2 并在文件中调用它。

from google.colab.patches import cv2_imshow

当我运行它时,它工作正常,没有错误,但函数 cv2_show 不显示图像,而是返回对象。

enter image description here

它返回这个

<PIL.Image.Image image mode=RGB size=400x400 at 0x7F0B8C132C10
>

        # Frame's Shape (400,400,3)
        print(type(frame))
        
       
        cv2_imshow(frame)

我传递给它的输入是形状为 (400,400,3) 的 numpy 数组

我尝试了另一种方法,保存图像并使用 PILLOW 来显示它,它仍然给出对象,但对象类型不同

<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=400x400 at 0x7FF8C204D7D0>

        # Frame's Shape (400,400,3)
        cv2.imwrite('landmark_test.jpg', frame)
        #cv2_imshow(frame)
        dpi = Image.open('landmark_test.jpg')
        display(dpi)

python opencv python-imaging-library google-colaboratory
1个回答
0
投票

使用

!python yourScript.py
可能无法正确显示图像,因为它将脚本作为单独的进程运行,与 Colab 的输出系统不能很好地集成。相反,图像显示为
<PIL.Image.Image>
对象引用,而不是视觉内容。

为了确保图像正确显示,请将

!python
替换为
%run
魔术命令。这会在 IPython 上下文中执行您的脚本,确保与 Colab 的输出渲染集成。

更换:

!python script_name.py

与:

%run script_name.py
© www.soinside.com 2019 - 2024. All rights reserved.