drawContour()
函数在视频帧中工作不正常。它使用这个stack-overflow answer处理图像。输出的只是一幅不需要绘制任何轮廓的精明图像。你知道吗
这是我的密码:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
ret,thresh1 = cv2.threshold(frame,127,255,cv2.THRESH_BINARY)
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(thresh1,kernel,iterations = 1)
edges = cv2.Canny(erosion, 100 ,200)
imCopy = edges.copy()
laplacian = cv2.Laplacian(edges, cv2.CV_8UC1)
sobely = cv2.Sobel(laplacian,cv2.CV_8UC1, 0, 1, ksize=5)
im2, contours, hierarchy = cv2.findContours(sobely,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
frame = cv2.drawContours(im2, contours, -1, (255,0,0), 3)
cv2.imshow('window',frame)
print len(contours)
k = cv2.waitKey(5) & 0xFF
if k==27:
break
cv2.destroyAllWindows()
cap.release()
使用
绘制的轮廓将不着色,因为您正在单通道图像上绘制它们。下面是如何画彩色的。(假设
frame
是BGR
。如果原始frame
是灰度的,则使用cvtColor
将下面代码中的frame_copy
转换为BGR
)。你知道吗相关问题 更多 >
编程相关推荐