- 文件读入
imread("filename") - 数据类型 Mat 存放各类型图像数据 用于存放读入/处理后的图像
Mat a; - 函数cvtColor 图像色彩空间转换 (HSV/灰度图)
cvtColor(input,output,type COLOR_BGR2GRAY) - 函数threshold 图像二值化 (超过指定亮度的显示)
threshold(input,output,thresh,maxth,THRESH_BINARY) - 函数findContours 寻找图像中的亮块 存储在vector内
findContours(input,vector<vector<Points>>,RETR_EXTERNAL(外层轮廓), CHAIN_APPROX_SIMPLE(简化点)) - 数据类型 Rect 通过函数boundingRect转化counter为Rect矩形框 用于最终绘制
Rect rect = boundingRect(contour) - 函数rectangle 将Rect绘制在Mat上
rectangle(Mat, Rect, SRGBColor, width) - 函数imshow 将Mat渲染在屏幕上
imshow(name,Mat) - 函数imwrite 将Mat输出为文件
imwrite("result.png", Mat);
- 通过较高亮度的二值化排除大部分暗部像素
- 排除面积过小/大的counter噪音
- 通过两次遍历Rect数组 查找宽高相差不大的矩形框(两灯条)精确装甲板位置
- 算法适应性较差
- 利用yolo识别装甲板的可行性
- 对旋转中装甲板的预判和射击提前量