C++ iPhone用户界面上的圆圈显示为灰色
目前,我正在使用OpenCV处理来自AVCaptureSession的图像。该应用程序现在拍摄这些图像,并在斑点上绘制cv::圆圈。跟踪正在工作,但当我画圆圈时,它显示为灰色,扭曲的圆圈,而它应该是绿色的。是不是OpenCV绘图功能在iOS应用程序中无法正常工作?或者我能做些什么来修复它 任何帮助都将不胜感激 这是一个屏幕截图:(忽略底部的巨大绿色圆圈) cv::圆圈位于黑色圆圈的外侧 这里是我将CMSampleBuffer转换为cv::Mat的地方:C++ iPhone用户界面上的圆圈显示为灰色,c++,ios,iphone,opencv,C++,Ios,Iphone,Opencv,目前,我正在使用OpenCV处理来自AVCaptureSession的图像。该应用程序现在拍摄这些图像,并在斑点上绘制cv::圆圈。跟踪正在工作,但当我画圆圈时,它显示为灰色,扭曲的圆圈,而它应该是绿色的。是不是OpenCV绘图功能在iOS应用程序中无法正常工作?或者我能做些什么来修复它 任何帮助都将不胜感激 这是一个屏幕截图:(忽略底部的巨大绿色圆圈) cv::圆圈位于黑色圆圈的外侧 这里是我将CMSampleBuffer转换为cv::Mat的地方: enter code here CVIm
enter code here CVImageBufferRef pixelBuff = CMSampleBufferGetImageBuffer(sampleBuffer);
cv::Mat cvMat;
CVPixelBufferLockBaseAddress(pixelBuff, 0);
int bufferWidth = CVPixelBufferGetWidth(pixelBuff);
int bufferHeight = CVPixelBufferGetHeight(pixelBuff);
unsigned char *pixel = (unsigned char *)CVPixelBufferGetBaseAddress(pixelBuff);
cvMat = cv::Mat(bufferHeight, bufferWidth, CV_8UC4, pixel);
cv::Mat grayMat;
cv::cvtColor(cvMat, grayMat, CV_BGR2GRAY);
CVPixelBufferUnlockBaseAddress(pixelBuff, 0);
这是cv::Circle命令:
if (keypoints.size() > 0) {
cv::Point p(keypoints[0].pt.x, keypoints[0].pt.y);
printf("x: %f, y: %f\n",keypoints[0].pt.x, keypoints[0].pt.y);
cv::circle(cvMat, p, keypoints[0].size/2, cv::Scalar(0,255,0), 2, 8, 0);
}
关键点是已检测到的斑点的向量 你正在画的圆圈有多厚?看起来像素的访问方式有问题。很高兴看到您用来将图像转换为cv::Mat的代码,反之亦然。好的,我现在就编辑它。基本上,我要做的是将CMSampleBuffer转换为cvMat。厚度也是2。