我在 Colab 上显示图像时遇到问题。我运行的代码位于我在 Colab 上运行的 .py 文件中,因此在该文件中我导入了 cv2_imshow 而不是普通的 cv2 并在文件中调用它。
from google.colab.patches import cv2_imshow
当我运行它时,它工作正常,没有错误,但函数 cv2_show 不显示图像,而是返回对象。
它返回这个
<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 yourScript.py
可能无法正确显示图像,因为它将脚本作为单独的进程运行,与 Colab 的输出系统不能很好地集成。相反,图像显示为 <PIL.Image.Image>
对象引用,而不是视觉内容。
为了确保图像正确显示,请将
!python
替换为 %run
魔术命令。这会在 IPython 上下文中执行您的脚本,确保与 Colab 的输出渲染集成。
更换:
!python script_name.py
与:
%run script_name.py