-1

假设我有一张具有单一彩色背景(比如黑色)的图像,其中有很多不同颜色的“岛屿”。想象一个黑色背景,上面散布着红色、黄色和绿色的色块。我想要一个可以在所有这些补丁周围绘制轮廓的程序。我正在将opencv与python一起使用。如果颜色是预定义的,我已经找到了绘制轮廓的程序。如果没有,我该怎么办?这些补丁没有特定的形状。

4

1 回答 1

2
import cv2
import numpy as np

img=cv2.imread('img.jpg')
edges = cv2.Canny(img,100,200)

_,contours,hierarchy = cv2.findContours(edges, 1, 2)
for cnt in contours:
    (x,y),radius = cv2.minEnclosingCircle(cnt)
    center = (int(x),int(y))
    radius = int(radius)
    cv2.circle(img,center,radius,(255,255,255),2)

cv2.imshow('Detected!',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

在此处输入图像描述

于 2016-02-01T07:26:36.123 回答