9

I am facing an error ie to send plot to a particular IP address using python, numpy and matplotlob. I am attaching snippet which I have tried till now.

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

Errors:

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'
James Z
  • 12,209
  • 10
  • 24
  • 44
hosein
  • 129
  • 1
  • 1
  • 6

6 Answers6

14

I also had the "Error: failed to send plot to http://127.0.0.1:63342" error message when trying to display a matplotlib plot in PyCharm. I fixed it by disabling the "show plots in tool window" option under settings > tools > Python Scientific. In case the error message persists, try reproducing the error outside of PyCharm

enter image description here

cwallenwein
  • 538
  • 7
  • 20
  • but then where it's supposed to show the plots? I get an error if I disable this `Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.` – raquelhortab May 15 '23 at 17:56
  • Do any of these solutions work @raquelhortab? [https://stackoverflow.com/questions/56656777/userwarning-matplotlib-is-currently-using-agg-which-is-a-non-gui-backend-so](https://stackoverflow.com/questions/56656777/userwarning-matplotlib-is-currently-using-agg-which-is-a-non-gui-backend-so) – cwallenwein May 16 '23 at 05:09
3

Unchecked the "show plots in tools window" under the Settings >> Tools >> Python Scientific >>

Hansamal
  • 39
  • 4
3

I found that this issue arose when I had too many runs stacked up in the plot window on Pycharm. In other words, it was "full". After clearing the old plots, it was able to send plots to the window again. Didn't have to disable it. Restarting my computer also worked but this was likely because it cleared the window as well. :-) Hope this helps!

Alec
  • 31
  • 1
2

Another thing that worked for me was adding localhost to no_proxy environment variable. Be sure to add the port as well

export no_proxy=$no_proxy,127.0.0.1:63342
Sergej Andrejev
  • 9,091
  • 11
  • 71
  • 108
1

For my case, it is because my VPN V2rayU enabled the global proxy mode. Once disable it, the error is gone.

Hongbo Miao
  • 45,290
  • 60
  • 174
  • 267
-1

All of the solutions above don't work for me. A simple restart of PyCharm solves the issue.

Pretty silly but might get overlooked. Just posting in case it helps.

MrCrHaM
  • 63
  • 2
  • 8