如何将cv :: Mat数据复制回sampleBuffer?将cv :: Mat复制到CMSampleBufferRef
我的场景如下: 我从pixelBuffer创建cv :: Mat进行地标检测,并将地标添加到cv :: Mat图像数据。我想将这个cv :: Mat复制到示例缓冲区中,并与地标一起显示。
这可能吗?
我DLIB实现这一点,但需要知道如何与CV ::垫做到这一点:
char *baseBuffer = (char *)CVPixelBufferGetBaseAddress(imageBuffer);
img.reset();
long position = 0;
while (img.move_next()) {
dlib::bgr_pixel& pixel = img.element();
long bufferLocation = position * 4; //(row * width + column) * 4;
char b = baseBuffer[bufferLocation];
char g = baseBuffer[bufferLocation + 1];
char r = baseBuffer[bufferLocation + 2];
dlib::bgr_pixel newpixel(b, g, r);
pixel = newpixel;
position++;
}
可能是的。还有几个细节?一些代码? – Miki
我按照这个[答](http://stackoverflow.com/a/12355675/3649485)将'CVImageBufferRef'转换为cv :: mat。 现在我想把这个cv :: mat放回样本缓冲区。我知道如何使用dlib将像素复制回sampleBuffer,但不知道如何使用openCV执行此操作 dlib在下一个注释中的示例代码 – mosn
请将适当格式的代码发布到问题中。它在评论中不可读 – Miki