gpt4 book ai didi

c++ - 来自 Mat 图像的 OpenCV 子图像

转载 作者:IT老高 更新时间:2023-10-28 23:10:36 24 4
gpt4 key购买 nike

Possible Duplicate:
Understanding region of interest in openCV 2.4

我想从图像(Mat 格式)中获取子图像(由下面的红色框包围的图像)。我该怎么做?

enter image description here

这是我目前的进展:

include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace std;
using namespace cv;
int main()
{
Mat imgray, thresh;
vector<vector<Point> >contours;
vector<Point> cnt;
vector<Vec4i> hierarchy;
Point leftmost;

Mat im = imread("igoy1.jpg");
cvtColor(im, imgray, COLOR_BGR2GRAY);
threshold(imgray, thresh, 127, 255, 0);
findContours(thresh, contours, hierarchy, RETR_TREE,CHAIN_APPROX_SIMPLE);
}

最佳答案

您可以开始选择轮廓(在您的情况下,是与手相对应的轮廓)。然后,您计算此轮廓的边界矩形。最后,您从中制作一个新的矩阵标题。

int n=0;// Here you will need to define n differently (for instance pick the largest contour instead of the first one)
cv::Rect rect(contours[n]);
cv::Mat miniMat;
miniMat = imgray(rect);

警告:在这种情况下,miniMat 是 imgray 的一个子区域。这意味着如果你修改了前者,你也修改了后者。使用 miniMat.copyTo(anotherMat) 来避免这种情况。

希望对你有帮助祝你好运

关于c++ - 来自 Mat 图像的 OpenCV 子图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931621/

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