Python Opencv绘制轮廓错误
它工作,但我的轮廓的颜色是黑色的。如何将其更改为红色或绿色Python Opencv绘制轮廓错误,python,opencv,Python,Opencv,它工作,但我的轮廓的颜色是黑色的。如何将其更改为红色或绿色 import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread('1.jpg',0) img1 = cv2.imread('5.jpg',0) dest = cv2.subtract(img, img1) res = cv2.bitwise_not(dest) ret ,
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('1.jpg',0)
img1 = cv2.imread('5.jpg',0)
dest = cv2.subtract(img, img1)
res = cv2.bitwise_not(dest)
ret , threshold = cv2.threshold(res,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
cv2.namedWindow('thresimage', cv2.WINDOW_NORMAL)
cv2.imshow('thresimage',threshold)
_, contours, hierarchy = cv2.findContours(threshold,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
print "Number of contours detected %d -> "%len(contours)
cv2.drawContours(threshold,contours,-1,(0,255,0),3)
cv2.namedWindow('contour', cv2.WINDOW_NORMAL)
cv2.imshow('contour',threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()
首先:
contours, hierarchy = cv2.findContours(threshold,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)[-2:]
秒
ret , threshold = cv2.threshold(res,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# ...
cv2.drawContours(threshold,contours,-1,(0,255,0),3)
您在二进制阈值图像上绘制颜色(0255,0)
,然后它将始终是第一个元素0
,即黑色。您应该先将灰色转换为BGR,然后绘制颜色
canvas = cv2.cvtColor(threshold, cv2.COLOR_GRAY2BGR)
cv2.drawContours(canvas,contours,-1,(0,255,0),3)
首先:
contours, hierarchy = cv2.findContours(threshold,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)[-2:]
秒
ret , threshold = cv2.threshold(res,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# ...
cv2.drawContours(threshold,contours,-1,(0,255,0),3)
您在二进制阈值图像上绘制颜色(0255,0)
,然后它将始终是第一个元素0
,即黑色。您应该先将灰色转换为BGR,然后绘制颜色
canvas = cv2.cvtColor(threshold, cv2.COLOR_GRAY2BGR)
cv2.drawContours(canvas,contours,-1,(0,255,0),3)
非常感谢你!它能工作,但画出来后我看不到轮廓。@BùiChíThanh发布你的结果,否则我们无法诊断。非常感谢!它能工作,但画完后我看不到轮廓。@BùiChíThanh发布你的结果,否则我们无法诊断。