Matplotlib 如何将pyplot.contour(..)转换为等效的opencv?

Matplotlib 如何将pyplot.contour(..)转换为等效的opencv?,matplotlib,opencv-contour,Matplotlib,Opencv Contour,我有一张这样的图片:(original.png) 人体检测结果如下:(detection.png) 并使用blow代码: import numpy import cv2 import matplotlib.pyplot as plt import numpy as np original = cv2.imread('original.png') detections = cv2.imread('detection.png') fig = plt.figure(figsize=[12,12

我有一张这样的图片:(original.png)

人体检测结果如下:(detection.png)

并使用blow代码:

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

original  = cv2.imread('original.png')
detections = cv2.imread('detection.png')
fig = plt.figure(figsize=[12,12])
plt.imshow( original[:,:,::-1] )
plt.contour( detections[:,:,1]/256.,10, linewidths = 1 )
plt.contour( detections[:,:,2]/256.,10, linewidths = 1 )
plt.axis('off') ;
plt.show()
将生成如下图像: 我已尝试将其转换为:

plt.contour( detections[:,:,1]/256.,10, linewidths = 1 )
与opencv等效:

_, contours, _ = cv2.findContours(detections,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
与各种

retrieve mode + approximation method

但是它们都没有给出预期的结果,那么如何解决这个问题呢?

OpenCv findcontours需要一个黑白图像

尝试:


你能把它标记为已解决或告诉为什么它不是?
_, thresh = cv2.threshold(detections[:,:,1], 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

_, contours, _ = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)