【问题标题】:Deteting islands of different color in an image with OpenCV使用 OpenCV 检测图像中不同颜色的岛屿
【发布时间】:2016-02-01 04:40:11
【问题描述】:

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

【问题讨论】:

  • 检测边缘然后应用轮廓检测​​
  • 如果您添加指向示例图像的链接会有所帮助。
  • 所以你可以“如果颜色是预定义的,就画轮廓”? OpenCV 没有IF or Else 语句吗?预定义“黑色”然后If black = 什么都不做,Else = 绘制轮廓?
  • 您能否提供您正在使用的示例图片?

标签: python opencv image-processing opencv-contour


【解决方案1】:
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()

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多