Python Can';不要改变轮廓的颜色

Python Can';不要改变轮廓的颜色,python,opencv,image-processing,Python,Opencv,Image Processing,我已经写了代码来找到轮廓并给它们上色。但是,视频无法保存,但已成功运行 我想我把问题缩小到了两行代码,当我对它们进行评论时,视频会保存下来,但它将是灰度的,这是我不想要的 #change to black and white gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) gaus = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINA

我已经写了代码来找到轮廓并给它们上色。但是,视频无法保存,但已成功运行

我想我把问题缩小到了两行代码,当我对它们进行评论时,视频会保存下来,但它将是灰度的,这是我不想要的

#change to black and white
gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)


gaus = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 
cv2.THRESH_BINARY, 115,50)
frame = gaus






#Bluring the video
blur = cv2.GaussianBlur(frame,(15,15),cv2.BORDER_DEFAULT)
frame = blur

# Canny Edge
Canny = cv2.Canny(frame ,25,50)
frame = Canny


# Contours
contours,hierachy= cv2.findContours(frame,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

index = -1
thickness = 5


# these two lines bellow are preventing the file from being saved

img2 = cv2.cvtColor(frame, cv2.COLOR_GRAY2RGB)
frame = img2




cv2.drawContours(frame, contours, -1, (255,0,0), thickness)

# Save the video



cv2.imshow("frame", frame)

out.write(frame)

您可以尝试在原始图像上绘制轮廓。您已经应用了上述所有操作来查找等高线。现在您已经找到了轮廓,请在原始图像上而不是在处理过的图像上绘制。cv2.cvtColor(frame,cv2.COLOR_GRAY2RGB)不会使结果与彩色帧相同。它仍然是灰色的,但有3个通道。你为什么这么做?您可以只在原始色框或单通道灰度图像上绘制轮廓。@fmw42但当我运行它时,视频会显示我想要的颜色。它只是没有将它保存到您正在使用的视频编解码器的文件中。@karandepdps.mov,但正如我所说的,在大多数情况下,视频只保存img2=cv2.cvtColor(frame,cv2.COLOR\u GRAY2RGB)frame=img2似乎阻止保存视频,当我评论这两行时,我可以保存视频