首页 > 解决方案 > 无法将情节发送到 http://127.0.0.1:63342

问题描述

我面临一个错误,即使用 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.xnumpyopencvmatplotlib

解决方案


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

在此处输入图像描述


推荐阅读