void cvRenderBlobs(const IplImage *imgLabel, CvBlobs &blobs, IplImage *imgSource, IplImage *imgDest, unsigned short mode, double alpha) { CV_FUNCNAME("cvRenderBlobs"); __CV_BEGIN__; { CV_ASSERT(imgLabel&&(imgLabel->depth==IPL_DEPTH_LABEL)&&(imgLabel->nChannels==1)); CV_ASSERT(imgDest&&(imgDest->depth==IPL_DEPTH_8U)&&(imgDest->nChannels==3)); Palete pal; if (mode&CV_BLOB_RENDER_COLOR) { unsigned int colorCount = 0; for (CvBlobs::const_iterator it=blobs.begin(); it!=blobs.end(); ++it) { CvLabel label = (*it).second->label; double r, g, b; _HSV2RGB_((double)((colorCount*77)%360), .5, 1., r, g, b); colorCount++; pal[label] = CV_RGB(r, g, b); } } for (CvBlobs::iterator it=blobs.begin(); it!=blobs.end(); ++it) cvRenderBlob(imgLabel, (*it).second, imgSource, imgDest, mode, pal[(*it).second->label], alpha); } __CV_END__; }
void cvRenderBlobs(const IplImage *imgLabel, CvBlob blob, IplImage *imgSource, IplImage *imgDest, unsigned short mode, double alpha) { CV_FUNCNAME("cvRenderBlobs"); __CV_BEGIN__; { CV_ASSERT(imgLabel&&(imgLabel->depth==IPL_DEPTH_LABEL)&&(imgLabel->nChannels==1)); CV_ASSERT(imgDest&&(imgDest->depth==IPL_DEPTH_8U)&&(imgDest->nChannels==3)); Palete pal; if (mode&CV_BLOB_RENDER_COLOR) { CvLabel label = blob.label; pal[label] = CV_RGB(255, 255, 255); } cvRenderBlob(imgLabel, &blob, imgSource, imgDest, mode, pal[blob.label], alpha); } __CV_END__; }