title: Why does Keypoint_convert fail if applied twice?
body: <p>I am trying to do operations on point descriptors on an image, and while doing so it's useful to get a numpy representation of the 2D coordinates of my keypoints, applying some linear transformation to it and convert it back to a list of <code>cv2.KeyPoint</code> objects.</p>
  <p>I seem to fail to do so, and my problem seems to boil down to the fact that in the code</p>
  <pre><code>import cv2
  import imutils
  
  img = imutils.url_to_image('https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png') 
  detector = cv2.AKAZE_create()
  gray_image = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
  kpts, desc = detector.detectAndCompute(gray_image, None)
  coords = cv2.KeyPoint_convert(kpts)
  
  # here I would to stuff with coords   
  # and then finally 
  transformed_kpts = cv2.KeyPoint_convert(coords)
  </code></pre>
  <p>the last line fails to execute.</p>
  <p>Simplifying things even further, doing something as simple as</p>
  <pre><code>cv2.KeyPoint_convert(cv2.KeyPoint_convert(kpts))
  </code></pre>
  <p>crashes with</p>
  <blockquote>
  <p>OpenCV(4.1.2) /io/opencv/modules/core/src/copy.cpp:254: error:
  (-215:Assertion failed) channels() == CV_MAT_CN(dtype) in function
  'copyTo'</p>
  </blockquote>
  <p>Is this a bug or am I doing something fundamentally wrong?</p>
  <p>From the <a href="https://docs.opencv.org/3.4/d2/d29/classcv_1_1KeyPoint.html#acfcc8e0dd1a634a7583686e18d372237" rel="nofollow noreferrer">docs</a> it looks to me that the applying the function twice on a list of keypoints should run fine and give me back the original list.</p>
  <p>My <code>cv2.__version__</code> is 4.1.2.</p>