在opencv中提取形成特定颜色的形状

时间:2015-12-29 13:22:06

标签: c++ c opencv image-segmentation opencv3.0

拍下下面的图片

source image

我想将红色轮廓的形状提取到单独的图像中。我想这样做,因为我想检查我的工作的这些形状的凸性。有什么建议?我试过了分割通道,但只是从图像中删除了红色。

2 个答案:

答案 0 :(得分:0)

由于您自己绘制了红色边框,因此根本不需要分析红色边框。通过这样做,你就像是一个拿着txt文件的打印屏幕并尝试OCR的人!

解决方案:

  1. cv::BoundingBox围绕第一个红色轮廓点。
  2. 获取矩形的ROI并将其存储在单独的cv::Mat
  3. 使用与之前的cv :: Mat相同的标题创建一个新的黑色(0cv::Mat
  4. 使用255
  5. 用白色(cv::fillPoly)绘制轮廓
  6. cv::bitwise_and两者之间cv::Mats

答案 1 :(得分:-1)

您可以尝试制作包含红色为主色的像素的图像,例如,您将检查每个像素并制作这样的黑白图像

[String]

这会过滤掉蓝色,绿色和灰色,并保留鲜红色。