gpt4 book ai didi

c++ - iOS 从 openCV cv::Point 获取 CGPoint

转载 作者:可可西里 更新时间:2023-11-01 03:34:19 25 4
gpt4 key购买 nike

enter image description here

在上图中,我们可以看到通过一些openCV算法绘制在图像上的点。

我想在这些点上绘制一个 UIView 点,以便用户可以裁剪它。

我不知道如何访问这些点以便我可以添加 uiview 点。

我尝试读取 cv::Point ,但值只是与坐标高度和宽度不同(更多)。

static cv::Mat drawSquares( cv::Mat& image, const std::vector<std::vector<cv::Point> >& squares )
{

int max_X=0,max_Y=0;
int min_X=999,min_Y=999;
for( size_t i = 0; i < squares.size(); i++ )
{
const cv::Point* p = &squares[i][0];
int n = (int)squares[i].size();

NSLog(@"Squares%d %d %d",n,p->x,p->y);

polylines(image, &p, &n, 1, true, cv::Scalar(0,255,0), 3, cv::LINE_AA);

}


return image;
}

在上面的代码中,drawsquare 方法绘制正方形。我有 NSLog 点 x、y 坐标,但这些值与设备坐标系无关.

有人可以帮助我如何实现它或者替代我的要求。

谢谢

最佳答案

这是在 Swift 3 中。在 Swift 类中,您将 cv::Points 返回到:

  1. 从您的相机 AV Capture Session 获取您正在录制的图像的 xy 尺寸
  2. 将您用来可视化图像的 UIviewxy 维度划分为在 X 和 Y 方向捕获 session 的图像尺寸
  3. 将点的xy 坐标乘以缩放后的xy 维度

{
let imageScaleX = imgView.bounds.width/(newCameraHelper?.dimensionX)!
let imageScaleY = imgView.bounds.height/(newCameraHelper?.dimensionY)!
for point in Squares {
let x = point.x * imageScaleX
let y = point.y * imageScaleY
}
}

关于c++ - iOS 从 openCV cv::Point 获取 CGPoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30571274/

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