Python 在opencv图像上使用matplotlib

Python 在opencv图像上使用matplotlib,python,opencv,matplotlib,Python,Opencv,Matplotlib,我在结合matplotlib和opencv时遇到了一些困难。我有以下代码显示视频流,并在按下空格键时暂停。然后我想使用matplotlib在暂停的图像上绘制一些注释(然后用户可以点击空格取消暂停并重复该过程)。但是,每当我添加任何matplotlib函数时,它都会打开一个单独的图形窗口,理想情况下,我希望直接在图像上添加注释。我还查看了opencv中可用的绘图功能,但没有足够的功能(我希望将复杂曲线拟合到暂停的图像)。任何帮助都将不胜感激 import numpy as np import cv

我在结合matplotlib和opencv时遇到了一些困难。我有以下代码显示视频流,并在按下空格键时暂停。然后我想使用matplotlib在暂停的图像上绘制一些注释(然后用户可以点击空格取消暂停并重复该过程)。但是,每当我添加任何matplotlib函数时,它都会打开一个单独的图形窗口,理想情况下,我希望直接在图像上添加注释。我还查看了opencv中可用的绘图功能,但没有足够的功能(我希望将复杂曲线拟合到暂停的图像)。任何帮助都将不胜感激

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

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, im = cap.read()

    # Our operations on the frame come here
    im_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
    im_g = cv2.GaussianBlur(im_gray,(5,5),0)
    (thresh, im_bw) = cv2.threshold(im_g, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
    cv2.imshow('Window',im)  

    k = cv2.waitKey(1)
    if k > 0:
        print k
    if k == 32:
        ##########
        # Plot on top of image using matplotlib
        ##########
        cv2.waitKey(0)
        continue
    elif k == 27:
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

能否输入一些要使用的matplotlib命令?matplotlib imshow与cv2 imshow相比是否也有效?我的Python经验是有限的,但如果我理解正确,这是在C中发生的,因此我预计在同一窗口上绘图将非常困难。但是,在Matplotlib中绘制图像一点也不困难;是否可以对所有图形使用Matplotlib?您甚至使用了灰度,因此RGB/BGR不会成为问题。