使用python opencv进行Blob检测
发布时间:2020-12-20 11:27:05 所属栏目:Python 来源:网络整理
导读:有人知道用 python cv opencv lib检测blob的方法吗?最初我不想使用外部lib作为cvBlobs. 我正在进行车牌识别并且有一些处理过的图像 并希望将blob分开来抓住盘子. 我已经在C#中使用AForge完成了它: BlobCounterBase bc = new BlobCounter();bc.FilterBlobs
|
有人知道用
python cv opencv lib检测blob的方法吗?最初我不想使用外部lib作为cvBlobs.
我正在进行车牌识别并且有一些处理过的图像 并希望将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)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
