这是我的输入图像:
并且我想从图像中删除字母(例如用餐室)。我该怎么办?
我的代码如下。
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中描述的文本检测项目来检测存在文本的区域,然后简单地应用图像中出现最多的颜色(即背景)和瞧。
高温超导