gpt4 book ai didi

opencv - Openframeworks 颜色跟踪

转载 作者:行者123 更新时间:2023-12-02 17:52:23 26 4
gpt4 key购买 nike

我正在 Openframeworks 中使用 OpenCV 来跟踪某种颜色。如果您不熟悉颜色跟踪代码,我的问题可能很困难,但我会尽力解释。

代码现在所做的是遵循带有红色圆圈的某种颜色,我正在努力创建一条基本相同的线,但每个点都将被存储,以便创建一种波浪形的绘图应用程序。现在它是一条可以拉的直线。

如有必要,我会发布更多代码。任何建议都会有帮助。谢谢!

测试应用程序.cpp

void testApp::draw(){

ofSetColor(255,255,255);
//draw coloured cv image
rgb.draw(0,0);
contours.draw(0,480);

// draw line that follows the blobs

for (int i=0; i<contours.nBlobs; i++) {
ofSetColor(0);
ofLine( contours.blobs[i].pos.x, contours.blobs[i].pos.y, contours.blobs[i].lastpos.x, contours.blobs[i].lastpos.y );

}


}

ofxCvContourFinder.cpp


for( int i = 0; i < MIN(nConsidered, (int)cvSeqBlobs.size()); i++ ) {
blobs.push_back( ofxCvBlob() );
float area = cvContourArea( cvSeqBlobs[i], CV_WHOLE_SEQ, bFindHoles ); // oriented=true for holes
CvRect rect = cvBoundingRect( cvSeqBlobs[i], 0 );
cvMoments( cvSeqBlobs[i], myMoments );

blobs[i].area = bFindHoles ? fabs(area) : area; // only return positive areas
blobs[i].length = cvArcLength(cvSeqBlobs[i]);
blobs[i].boundingRect.x = rect.x;
blobs[i].boundingRect.y = rect.y;
blobs[i].boundingRect.width = rect.width;
blobs[i].boundingRect.height = rect.height;
blobs[i].centroid.x = (myMoments->m10 / myMoments->m00);
blobs[i].centroid.y = (myMoments->m01 / myMoments->m00);
blobs[i].pos.x =0;
blobs[i].pos.y =0;
blobs[i].lastpos.x = blobs[i].pos.x;
blobs[i].lastpos.y = blobs[i].pos.y;
blobs[i].pos.x =(myMoments->m10 / myMoments->m00);
blobs[i].pos.y = (myMoments ->m01 / myMoments->m00);

最佳答案

您可以在此处找到您要实现的目标的完整示例:

https://github.com/kylemcdonald/ofxCv/tree/master/example-contours-color

它使用了 ofxCv,一个可以让你以干净的方式将 openframeworks 与 openCv 集成的附加组件。此外,您可以使用 native OpenCV 调用,而无需任何类型的包装器。互联网上充满了使用纯 OpenCV 代码的类似示例,通过此附加组件,您可以按原样使用这些片段,没有任何问题,它提供了一些从 OpenCV 数据结构到 Openframeworks 数据结构的简单方法,反之亦然.太好了!

关于opencv - Openframeworks 颜色跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447399/

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