gpt4 book ai didi

python - 在 pdb 模式下在命令提示符下键入 imshow(img) 时不显示 matplotlib 图形

转载 作者:太空狗 更新时间:2023-10-30 02:04:07 27 4
gpt4 key购买 nike

有没有人在 Debug模式(PDB)下使用 spyder 遇到过这个问题?它在交互模式下工作正常。

一个建议solution是在 imshow(img) 之后使用 pause(1) 而不是 show()

有没有更好的方法在 Debug模式下查看我的数字?如果有,那将是真正的 Matlab killer !

最佳答案

回答我自己的问题。显然这是 bug pause(1) 是在 PDB 模式下查看绘图的唯一方法。

另一种方法是将整个程序作为脚本运行,方法是将其剪切并粘贴到命令行中。这样可以使用 show() 代替 pause(1)。这样做的好处是可以放大情节。使用 pause(1) 时,这只能在暂停期间实现。

例如:

import numpy as np
from matplotlib import pyplot as plt
import cv2

file_name = 'myimage.jpg'
img = cv2.imread(file_name)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,150,100,apertureSize = 3)

#display image
plt.figure(1)
plt.imshow(edges)
plt.title('edges of image')
plt.show()

编辑:

我刚刚在 python 中发现了一个很好的替代绘图工具,叫做 guiqwt

与 matplotlib 不同,它适用于 pdb

import numpy as np
from guiqwt.pyplot import *
figure("simple plot")
subplot(1, 2, 1)
plot(x, np.tanh(x+np.sin(12*x)), "g-", label="Tanh")
legend()
subplot(1, 2, 2)
plot(x, np.sinh(x), "r:", label="SinH")
show()

您可以在 python(x,y) 中将其作为包含包的一部分获取或者您可以从 here 下载

编辑2:

我刚刚找到Pycharm发布的最新IDE更好地支持 matplotlib。您可以使用 plt.imshow(img),甚至不必使用 plt.show() 在 Debug模式下显示图像

关于python - 在 pdb 模式下在命令提示符下键入 imshow(img) 时不显示 matplotlib 图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23927345/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com