Posted on

Concrete Analysis

Description

In this work, we have detected a metallic wires on slide concrete. Metal parts are distributed randomly. It may happen that the positions of two adjacent wires or also cutting the wires along the length. Some wires are due to bad picture almost invisible. The images we applied filters from the library OpeCV and we have created an application that can recognize about 90% of the wires.

Input

Processing

  1. Create marker of image
    cv::erode(_grayScale, marker,
        cv::getStructuringElement(cv::MORPH_ELLIPSE,
        cv::Size(20, 20), cv::Point(-1,-1)), cv::Point(-1,-1), 2,
        cv::borderInterpolate(1, 15, cv::BORDER_ISOLATED));
    ImReconstruct(&(IplImage)marker, &(IplImage)_grayScale);
    

  2. Substraction grayscale image and marker image
    grayScale = _grayScale - marker;
    

  3. Use some morphological operation and get contours
    // Closing, erode, treshold
    cv::findContours(grayScale.clone(), contours, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0,0) );
    
  4. Detailed analysis of the use of wires, in specific cases

  5. Final output