c++ - 如何在 opencv 中使用眼点裁剪图像?

标签 c++ opencv

<分区>

  • 我有一张带有眼睛的图像,并在眼睛周围点了点。比如10分。现在我想剪掉眼睛部分。
  • 但我不知道我该怎么做。
    请给我一个主意。

最佳答案

我建议您根据要裁剪的点找到一个“边界框”。然后,您可以使用 this method裁剪图像。

这是一个示例代码,可以让您了解该怎么做:

// let's assume that you stored your 10 points in a QList
QList<QpointF> points;
// fill in "points"...
// generate a "bounding box" by finding the min/max in the x and y directions
const auto compareX = [] (const QpointF& p1, const QpointF& p2) {
    return p1.x() < p2.x();
};
const auto compareY = [] (const QpointF& p1, const QpointF& p2) {
    return p1.y() < p2.y();
};
const auto pMinX = std::min_element(points.begin(), points.end(), compareX);
const auto pMaxX = std::max_element(points.begin(), points.end(), compareX);
const auto pMinY = std::min_element(points.begin(), points.end(), compareY);
const auto pMaxY = std::max_element(points.begin(), points.end(), compareY);
cv::Rect boundingBox(pMinX->x(),
                     pMinY->y(),
                     pMaxX->x() - pMinX->x(),
                     pMaxY->y() - pMinY->y());
// get a view on the sub-image
cv::Mat croppedImage = originalImage(boundingBox);

关于c++ - 如何在 opencv 中使用眼点裁剪图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33231352/

相关文章:

c++ - 我可以在 C++ 中通过模板调用类的成员吗?

c++ - VS2017 [15.8.6]如果constexpr生成带有C2760消息的错误

C++ BASS 库 - 简单的 mp3 样本播放

C++ OpenGL fstream 问题

python-3.x - 如何使用 Python 从 IP 摄像机流中找到以毫米为单位的圆形物体直径?

c++ - 如何实时找到 OpenCV 轮廓的平均强度

c++ - OpenCV 构建正常,调试抛出错误,从 .exe 运行正常

c++ - 如何安全终止QT中不同线程上运行的对象

c++ - opencv中2D到3D的变换矩阵

opencv - 如何将opencv图像与以毫米为单位的尺寸关联?