网站建设公司业务人员岗位职责,高淳区建设局网站,嘉兴娱乐网页设计,asp个人网站源码下载号he
找到目标图像的缺陷位置#xff0c;首先思路为对图像进行预处理#xff0c;灰度-二值化-针对图像进行轮廓分析
//定义结构元素 Mat se getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1)); morphologyEx(thre, tc, MORPH_OPEN, se, Point(-1, -1), 1);
…号he
找到目标图像的缺陷位置首先思路为对图像进行预处理灰度-二值化-针对图像进行轮廓分析
//定义结构元素 Mat se getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1)); morphologyEx(thre, tc, MORPH_OPEN, se, Point(-1, -1), 1);
目标图形为矩形RECT大概在33可以自己调整 位置在中心-1-1.与开操作对图像进行处理 if (rect.height (height / 2)) { continue; } if (area 150) { continue; }根据不同的素材来做筛选例如此类型就是以图形的行和面积来作为筛选条件
1rectangle(frame, rect, Scalar(0, 0, 255), 2, 8, 0); drawContours(image, contours, t, Scalar(0, 0, 255), 2, 8);效果
2rectangle(frame, rect, Scalar(0, 0, 255), 2, 8, 0); drawContours(frame, contours, t, Scalar(0, 0, 255), 2, 8);效果 做好框架处理后进行目标工件的排序处理此列以冒泡排序从小到大排序
void sort_box(vectorRect boxes) { int size boxes.size(); for (int i 0; i size - 1; i) { for (int j i; j size; j) { int x boxes[j].x; int y boxes[j].y; if (y boxes[i].y) { Rect temp boxes[i]; boxes[i] boxes[j]; boxes[j] temp; } } } }
进行排序好后可以从putText来验证排序结果初始为6-0改好后为0-6 前期的图像处理完毕后面的思路要对模板图像以及后面的图像进行对比生成mask来确认具有缺陷的刀片。 tpl为刚才观察到的形态良好的工件将其提取后与其他工件进行对比做差对Mask进行开操作后观察
将白色部分的尺寸打印出来作为筛选 将白色像素大于50的打印出来 运行后发现出现了误检测因为刀片宽度不统一所以容易识别错误所以需要在已经检测到的关键框架进行进一步的筛选。很明显的可以看到最后一个被误检测。首先对筛选出来的图像进行进一步处理 这样可以通过find来更加严谨的找到我们需要的有缺陷的工件。