我想要在opencv中用最小矩形外接图中图像并剪切截取出这个矩形部分。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想要在opencv中用最小矩形外接图中图像并剪切截取出这个矩形部分。相关的知识,希望对你有一定的参考价值。
我想要在opencv中用最小矩形外接图中图像并剪切截取出这个矩形部分。可编程后最小外接矩形却是整个图框。请问怎么解决,能给个代码吗?
参考技术A 试试 里面一些参数要改一下 这是c++vector<vector<Point>> vecContour;
vector<Vec4i> hierarcy;
findContours(dst1, vecContour, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);//查找轮廓
Rect boundRect;//存放外接矩形
RotatedRect rorect;//存放最小外接矩形
Point2f rect[4];
//vector<vector<Point>>proRect;
//Mat imageContours = Mat::zeros(image.size(), CV_8UC1);
for (int i = 0; i < vecContour.size(); i++)
boundRect = boundingRect(Mat(vecContour[i]));
if (boundRect.width < 200 || boundRect.height < 200)
continue;
circle(dst1, Point(rorect.center.x, rorect.center.y), 5, Scalar(0, 255, 0), -1, 8); //绘制最小外接矩形的中心点
rorect.points(rect); //把最小外接矩形四个端点复制给rect数组
rectangle(dst1, Point(boundRect.x, boundRect.y), Point(boundRect.x + boundRect.width, boundRect.y + boundRect.height), Scalar(0, 255, 0), 2, 8);
for (int j = 0; j < 4; j++)
line(dst1, rect[j], rect[(j + 1) % 4], Scalar(255, 0, 0), 2, 8); //绘制最小外接矩形每条边
参考技术B 用弹簧测力计测量出物体的重力G本回答被提问者采纳
以上是关于我想要在opencv中用最小矩形外接图中图像并剪切截取出这个矩形部分。的主要内容,如果未能解决你的问题,请参考以下文章
python基于图像的掩码mask信息获取病灶区域ROI最小外接矩形坐标位置opencv基于掩码最小外接矩形坐标剪裁原图(crop image by mask rectangle)
Opencv-python 找到图像轮廓并绘制,cv2.findContours()函数,求轮廓外接矩形,cv2.boundingrect()