python - 使用 python opencv 进行 Blob 检测

标签 python opencv blob detection

有人知道用 python cv opencv lib 检测 blob 的方法吗?最初我不想使用外部库作为 cvBlob。

我正在研究车牌识别,并像那样处理了一些图像 enter image description here

并希望将 Blob 分开以接住盘子。

我已经在 C# 中使用 AForge 实现了它:

BlobCounterBase bc = new BlobCounter();
bc.FilterBlobs = true;
bc.MinHeight = 5;
bc.MinWidth = 5;

bc.ProcessImage(bitmap);
Blob[] blobs = bc.GetObjectsInformation();
for (int i = 0, n = blobs.Length; i < n; i++)
{
    if (blobs.Length > 0)
    {              
        bc.ExtractBlobsImage(bitmap, blobs[i], true);
        Bitmap copy = blobs[i].Image.ToManagedImage();
        Console.WriteLine(blobs[i].Rectangle.Size.ToString());
        copy.Save("C:/Users/Marcilio/Desktop/segmentacao/" + i + ".jpg");
    }
}
bitmap.Save("C:/Users/Marcilio/Desktop/foto2.jpg");

现在我需要相当于 python 的 opencv。

最佳答案

OpenCV 有 findContours返回轮廓列表及其层次结构的函数。

一旦你有了轮廓,你就可以获得它们的矩(例如计算质心)、它们的面积、它们的凸度以及你需要的一切。

所以你的代码看起来像这样(未经测试):

contours, _ = cv2.findContours(image, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
    rect = cv2.boundingRect(c)
    if rect[2] < 5 or rect[3] < 5: continue
    print cv2.contourArea(c)

关于python - 使用 python opencv 进行 Blob 检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265627/

相关文章:

python - 无法在 CentOS 服务器上安装 Twisted

python - SQLAlchemy - 与额外列的自引用多对多关系

azure - 将 2GB 文件上传到 Azure blob

python - Pandas 从列表中设置数据类型

python - 将指数 float 舍入为 2 位小数

python - 如何在Python中使用OpenCV或PIL在不更改图像分辨率的情况下放大或缩小形状

matlab - 基础矩阵的投影矩阵

java - 将 csv 数据作为 zipentry 对象移动到 zip 存档 - 构造函数 ZipEntry(Path) 未定义

Java FX 在搜索查询中显示图像

java - 将 Blob 从 Java 存储到 BD : Data size bigger than max size for this type when is clearly not