Matplotlib 如何将pyplot.contour(..)转换为等效的opencv?
我有一张这样的图片:(original.png) 人体检测结果如下:(detection.png) 并使用blow代码: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
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)