gpt4 book ai didi

c++ - 是否有任何版本的 CvBlobs 库可以与 cv::Mat 一起使用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:18 24 4
gpt4 key购买 nike

我刚刚发现 CvBlobsLib这可能是一个祝福,但遗憾的是它使用了 IplImage。
有没有可能有一个新的 cv::Mat 风格的版本我只是碰巧没有找到它?

编辑:

事实证明,我碰巧发现了 2 个不同的库,CvBlobsLib 和 CvBlobs,yeehaa。 :)
我看到 CvBlobsLib 比 cvBlobs 更少使用,那不是在 opencv willowgarage 上,而是在谷歌代码上。不过,我欢迎这两个库的答案,因为它们都与 IplImage 一起使用。 :)

最佳答案

编辑:我说的是 cvBlobs在这个答案中,抱歉我搞砸了 cvBlobsLib ...

我也一直在寻找这个,但没有想出任何使用新图像结构的库。

但实际上你总是可以这样做:IplImage iplImg = mat;只需使用 &iplimg无论你在哪里需要 IplImage* .

我用了 cvBlobs这种方式在几个项目中取得了成功:

#include <cvblob.h>
using namespace cvb;

// load image
cv::Mat mat = cv::imread("image.jpg");

// convert cv::Mat to IplImage
IplImage img = mat;

// convert to grayscale
IplImage *gray = cvCreateImage( cvGetSize(&img), IPL_DEPTH_8U, 1 );
cvCvtColor( &img, gray, CV_BGR2GRAY );

// get binary image
cvThreshold( gray, gray, 150, 255, CV_THRESH_BINARY );

// get blobs
IplImage *labelImg = cvCreateImage( cvGetSize(gray), IPL_DEPTH_LABEL, 1 );
CvBlobs blobs;
unsigned int result = cvLabel( gray, labelImg, blobs );

// render blobs in original image
cvRenderBlobs( labelImg, blobs, &img, &img );

// *always* remember freeing unused IplImages
cvReleaseImage( labelImg );
cvReleaseImage( gray );

// convert back to cv::Mat
cv::Mat output( &img );

关于c++ - 是否有任何版本的 CvBlobs 库可以与 cv::Mat 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com