【问题标题】:OpenCV 3 - How can I properly extract the ROI of a cv::Mat?OpenCV 3 - 如何正确提取 cv::Mat 的 ROI?
【发布时间】:2017-07-26 16:30:39
【问题描述】:

我刚刚开始在 iOS 中使用 openCV,我想从特定的 cv::Mat 中提取 ROI(感兴趣区域)。

这是我当前的代码:

- (UIImage*)test {
    UIImage* img = [UIImage imageNamed:@"unnamed"];

    cv::Mat mat1;

    UIImageToMat(img, mat1);

    cv::Rect rect = cv::Rect(175, 219, 130, 50);
    cv::Mat mat2 = mat1(rect);

    return MatToUIImage(mat2);
}

然而结果并不如我所料:

这是原始图像,我想在其中提取底部文本:

结果如下:

我对 OpenCV 完全陌生,所以我不知道是什么原因造成的。有人可以帮忙吗?

【问题讨论】:

  • 您所说的底部文本到底是什么意思?
  • 我指的是包含文本“www.unifieapps.in”和“Mountain View, CA”的区域

标签: ios opencv


【解决方案1】:

我使用下面的代码提取了 ROI。但我不确定MatToUIImage(mat2); 是否有效,也许你需要MatToUIImage(mat2.clone());

cv::Mat mat1 = imread("e:/test/rSfOy.jpg");
cv::Rect rect = cv::Rect(310, 420, 330, 110);
cv::Mat mat2 = mat1(rect);
imshow("rect", mat2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多