Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ iPhone用户界面上的圆圈显示为灰色_C++_Ios_Iphone_Opencv - Fatal编程技术网

C++ iPhone用户界面上的圆圈显示为灰色

C++ iPhone用户界面上的圆圈显示为灰色,c++,ios,iphone,opencv,C++,Ios,Iphone,Opencv,目前,我正在使用OpenCV处理来自AVCaptureSession的图像。该应用程序现在拍摄这些图像,并在斑点上绘制cv::圆圈。跟踪正在工作,但当我画圆圈时,它显示为灰色,扭曲的圆圈,而它应该是绿色的。是不是OpenCV绘图功能在iOS应用程序中无法正常工作?或者我能做些什么来修复它 任何帮助都将不胜感激 这是一个屏幕截图:(忽略底部的巨大绿色圆圈) cv::圆圈位于黑色圆圈的外侧 这里是我将CMSampleBuffer转换为cv::Mat的地方: enter code here CVIm

目前,我正在使用OpenCV处理来自AVCaptureSession的图像。该应用程序现在拍摄这些图像,并在斑点上绘制cv::圆圈。跟踪正在工作,但当我画圆圈时,它显示为灰色,扭曲的圆圈,而它应该是绿色的。是不是OpenCV绘图功能在iOS应用程序中无法正常工作?或者我能做些什么来修复它

任何帮助都将不胜感激

这是一个屏幕截图:(忽略底部的巨大绿色圆圈)

cv::圆圈位于黑色圆圈的外侧

这里是我将CMSampleBuffer转换为cv::Mat的地方:

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。