这是我的输入图像:



并且我想从图像中删除字母(例如用餐室)。我该怎么办?

我的代码如下。

Mat skel;
Mat image=imread("InputImage4.jpg",1);
cvtColor(image,image,CV_BGR2GRAY);
threshold(image,image,50,255,THRESH_BINARY_INV);
WallFinder wall;
wall.setLineLengthAndGap(100,20);
wall.setMinVote(80);
skel=wall.skeleton(image);

Mat skeleton(Mat& img)
    {
        threshold(img, img, 50, 255, THRESH_BINARY);
        Mat skel(img.size(), CV_8UC1, Scalar(0));
        Mat temp;
        Mat eroded;
        Mat element = getStructuringElement(MORPH_CROSS, Size(3, 3));
        bool done;
        do
        {
          erode(img, eroded, element);
          dilate(eroded, temp, element);
          subtract(img, temp, temp);
          bitwise_or(skel, temp, skel);
          eroded.copyTo(img);
          done = (countNonZero(img) == 0);
        } while (!done);
        dilate(skel,skel,Mat(),Point(-1,-1),2);
        erode(skel,skel,Mat(),Point(-1,-1),2);
        return skel;
    }

这是我的输出图像:

我必须先删除刻字才能完成工作。 (像浴)

最佳答案

使用here中描述的文本检测项目来检测存在文本的区域,然后简单地应用图像中出现最多的颜色(即背景)和瞧。

高温超导

09-07 06:36