Python Opencv drawContou

2024-04-16 05:30:54 发布

您现在位置:Python中文网/ 问答频道 /正文

它工作,但我的轮廓是黑色的。怎么换成红色或绿色?在

    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()

enter image description here


Tags: importimgthresholdasreswindowcv2dest
1条回答
网友
1楼 · 发布于 2024-04-16 05:30:54

首先

contours, hierarchy = cv2.findContours(threshold,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)[-2:]

^{pr2}$

在二进制threshed图像上绘制颜色(0,255,0),那么它总是第一个元素0,那是黑色的。你应该先把灰色转换成BGR,然后再画颜色。在

canvas = cv2.cvtColor(threshold, cv2.COLOR_GRAY2BGR)
cv2.drawContours(canvas,contours,-1,(0,255,0),3)

相关问题 更多 >