案例一:提取图片的中心ROI区域,周围的白边去掉
解决步骤:
1.判读图片是否倾斜 ,方法:canny检测边缘,findContours 寻找轮廓, RotatedRect minRect = minAreaRect(contours[t]);
degree = abs(minRect.angle);判读角度是否大于0
2.如果倾斜,则进行仿射变换让图片不倾斜 ,方法:用getRotationMatrix2D,warpAffine进行仿射变换
3.获取轮廓,选择ROI区域,绘制ROI区域 Mat roiImg=src(bbox); src为原图,bbox类型为Rect,ROI区域。
案例二: 检测文档中出现的直线
1.threshold二值化图像
2.对图像进行形态学操作,只剩下直线了
3.霍夫直线检测 HoughLinesP 获取直线点的位置
4.图片上绘制直线位置
案例三:获取图片上的对象和计数
1.二值化图像
2.形态学操作
3.寻找轮廓
4.选择合适轮廓并绘制和计数
案例四:图片校正(图片呈俯视拍摄,校正为平面图)
1.二值处理
2.形态学操作
3.轮廓发现
4.绘制最外围轮廓
5.霍夫直线检测四条边
6.寻找四条边,下面寻找四条边的部分代码
int accu = min(width*0.5, height*0.5);
int deltah = 0;
Vec4i topLine,