原图像->转灰度图->二值化->开操作。
提取水平线卷积盒使用水平矩形,提取竖直线卷积盒使用竖直矩形。
代码演示:#include#include #include using namespace std; using namespace cv; int main(int argc, const char* argv[]) { utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT); //设置日志输出 Mat src = imread("E:/picture/12.jpg"); Mat dst,result; Mat src_gray=Mat::zeros(src.size(),src.type()); putText(src, "OpenCv_vigny", Point(50, 50), FONT_HERSHEY_COMPLEX, 1.0, Scalar(12, 12, 127), 1, LINE_8, false); cvtColor(src, src_gray, COLOR_BGR2GRAY); adaptiveThreshold(~src_gray, dst, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2); Mat hline = getStructuringElement(MORPH_RECT, Size(src.cols / 16, 1), Point(-1, -1)); Mat cline = getStructuringElement(MORPH_RECT, Size(1, src.rows / 16), Point(-1, -1)); morphologyEx(dst, result, MORPH_OPEN, hline, Point(-1, -1), 1); imshow("input", src); imshow("thresh", dst); imshow("result", ~result); waitKey(0); destroyAllWindows(); return 0; }
输出结果:



