像素操作
函数调用
形态学操作
形态学处理函数morphologyEx处理不了与图像边缘相接的轮廓,即便给了足够大的Size。
morphologyEx(blur_otsu, blur_otsu, MORPH_OPEN, getStructuringElement(MORPH_RECT, Size(1, blur_otsu.rows / 5)), Point(-1,-1), 1, 0, 0);
查找原因,发现是日常使用时使用了默认的最后几个参数,然后最后一个参数**const Scalar& borderValue = morphologyDefaultBorderValue()**并不是默认为0的,需要显式地去给参数。
其他
1.调用minAreaRect测量图像某个轮廓的旋转角度。问题出现了,与另一个同事程序跑出来的结果完全对不上。发现是因为版本变更(至少3和4两个大版本有区别),函数返回来的angle值是不同的,openCV3获得的值加上90度才是openCV4的值。
//计算倾角
RotatedRect r_rect = minAreaRect(ctr);
float angle = r_rect.angle;
//cout << "angle = " << angle << endl;
angle > 80 ? angle = angle - 90 : angle = angle;