Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ opencv使用形态学操作分别提取所有水平线和垂直线_C++_Opencv_Extraction - Fatal编程技术网

C++ opencv使用形态学操作分别提取所有水平线和垂直线

C++ opencv使用形态学操作分别提取所有水平线和垂直线,c++,opencv,extraction,C++,Opencv,Extraction,我是opencv的新手。我正在使用VisualStudio 2013上的OpenCV和C++。我的任务是分别提取包含表的文档的所有水平行和垂直行,并使用这些行提取表中的单元格 我只能使用形态学运算来实现这一点 有人能提出实现这一目标的程序吗 这是一个示例文档 终于得到了输出。 看看代码 string src = "d://sabari//23.jpg"; Mat im = imread(src); Mat gray; if (im.channels() == 3) { cvtColo

我是opencv的新手。我正在使用VisualStudio 2013上的OpenCV和C++。我的任务是分别提取包含表的文档的所有水平行和垂直行,并使用这些行提取表中的单元格

我只能使用形态学运算来实现这一点

有人能提出实现这一目标的程序吗

这是一个示例文档

终于得到了输出。 看看代码

string src = "d://sabari//23.jpg";
Mat im = imread(src);
Mat gray;


if (im.channels() == 3)
{
    cvtColor(im, gray, CV_BGR2GRAY);
}
else
{
    gray = im;
}

adaptiveThreshold(~gray, gray, 255, CV_ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
Mat vertical = gray.clone();
int horizontalsize = gray.cols / 30;

Mat structure = getStructuringElement(MORPH_RECT, Size(horizontalsize,1));

erode(gray, gray,structure, Point(-1, -1));
dilate(gray, gray,structure, Point(-1, -1));

imshow("ans", gray);
imwrite("d://out2.jpg", gray);

int verticalsize = vertical.rows / 30;

Mat verticalStructure = getStructuringElement(MORPH_RECT, Size( 1,verticalsize));

erode(vertical, vertical, verticalStructure, Point(-1, -1));
dilate(vertical, vertical, verticalStructure, Point(-1, -1));

imshow("ans1", vertical);
imwrite("d://out3.jpg", vertical);

你可以用Hough吗?不,也不允许使用houghline。谢谢你的回复文件是什么样的?你能剪下它的图片吗?任何文档图片,对于示例,你可以查看这个URL,我分别得到了水平线和垂直线。因为我使用line作为结构元素,所以它可以删除其余元素,只剩下行。当我需要垂直线时,我使用代码中提到的结构元素“verticalStructure”。做得好,如果您显示输出图像,它将对将来阅读本文的人更有帮助。