无法将绘图发送到http://127.0.0.1:63342

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

我遇到一个错误,即使用 python、numpy 和 matplotlob 将绘图发送到特定 IP 地址。我附上了我到目前为止已经尝试过的片段。

Python

     import numpy as np
     import cv2
     from matplotlib import pyplot as plt
     img = cv2.imread('ml.png', 1)
     gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)



    img2 = cv2.imshow('img', img)
    cv2.waitKey(0)
    corners = cv2.goodFeaturesToTrack(gray, 30, 0.01, 10)
     corners = np.int0(corners)

    for i in corners:
    x, y = i.ravel()
    cv2.circle(img, (x, y), 10, 50, 0)
    plt.imshow(img), plt.show()
    MIN_MATCHES = 15
    cap = cv2.imread('mario.png', 0)
     model = cv2.imread('mario 3d.jpg', 0)

    # create brute force  matcher object
    bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
    # Compute model keypoints and its descriptors
    kp_model = cv2.goodFeaturesToTrack(model, 20, 0.01, 15)
    des_model = cv2.goodFeaturesToTrack(model, 20, 0.01, 15)
    # Compute scene keypoints and its descriptors
    kp_frame = cv2.goodFeaturesToTrack(cap, 20, 0.01, 15)
    des_frame = cv2.goodFeaturesToTrack(cap, 20, 0.01, 15)
    # Match frame descriptors with model descriptors
    matches = bf.match(des_model, des_frame)
    # Sort them in the order of their distance
    matches = sorted(matches, key=lambda x: x.distance)

    if len(matches) > MIN_MATCHES:
        # draw first 15 matches.
        cap = cv2.drawMatches(model, kp_model, cap, kp_frame,
                              matches[:MIN_MATCHES], 0, flags=2)
        # show result
        cv2.imshow('frame', cap)
        cv2.waitKey(0)
    else:
        print

错误:

Error: failed to send plot to http://127.0.0.1:63342

urlopen(url, buffer)    
return opener.open(url, data, timeout)    
response = self._open(req, data)    
result = self._call_chain(self.handle_open, protocol, protocol +    
result = func(*args)    
return self.do_open(http.client.HTTPConnection, req)    
r = h.getresponse()    
response.begin()    
version, status, reason = self._read_status()    
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")    
return self._sock.recv_into(b)    
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
Traceback (most recent call last):    
matches = bf.match(des_model, des_frame)    
cv2.error: OpenCV(4.3.0) C:\projects\opencv-python\opencv\modules\core\src\batch_distance.cpp:275: error: (-215:Assertion failed) type == src2.type() && src1.cols == src2.cols && (type == CV_32F || type == CV_8U) in function 'cv::batchDistance'
python-3.x numpy opencv matplotlib
7个回答
15
投票

尝试在 PyCharm 中显示 matplotlib 绘图时,我还收到“错误:无法将绘图发送到 http://127.0.0.1:63342”错误消息。我通过禁用“设置”>“工具”>“Python Scientific”下的“在工具窗口中显示绘图”选项来修复此问题。如果错误消息仍然存在,请尝试在 PyCharm 之外重现错误


4
投票

我发现当我在 Pycharm 的绘图窗口中堆积了太多运行时,就会出现这个问题。换句话说,就是“满”了。清除旧的绘图后,它可以再次将绘图发送到窗口。不必禁用它。重新启动我的计算机也有效,但这可能是因为它也清除了窗口。 :-) 希望这有帮助!


3
投票

取消选中“在工具窗口中显示绘图” 设置>>工具>>Python科学>>


2
投票

对我有用的另一件事是将 localhost 添加到 no_proxy 环境变量中。请务必添加端口

export no_proxy=$no_proxy,127.0.0.1:63342

2
投票

以上所有解决方案都不适合我。简单的 PyCharm restart 即可解决该问题。

非常愚蠢,但可能会被忽视。只是发帖以防有帮助。


1
投票

就我而言,这是因为我的VPN V2rayU启用了全局代理模式。一旦禁用它,错误就消失了。


0
投票

请参阅:https://youtrack.jetbrains.com/issue/PY-43687/Problems-with-many-plots-in-scientific-view#focus=Comments-27-6266042.0-0

帮助 -> FindAction -> “注册表” ->

ide.rest.api.request.per.minute

但是请小心,因为如果您将其设置超过~100,可能会导致 一些 UI 变慢甚至冻结。

© www.soinside.com 2019 - 2024. All rights reserved.