1
我正在編寫一個移動應用程序來繪製表格數據的圖形表示(圖表/圖表)。用戶正在拍攝統計表格的圖像。我必須檢測表格並裁剪所有單元格以便使用tessaract引擎執行OCR。 是否有適當的方法來識別圖像中的表格並循環遍歷單元格並將其保存到數組中?使用opencv讀取表格(圖片)單元格數據單元格
到目前爲止,我已經能夠使用opencv C++如下清理圖像。
代碼:
const char* filename = argc >= 2 ? argv[1] : "test.jpg";
Mat src = imread(filename);
if(src.empty())
{
//help();
cout << "can not open " << filename << endl;
return -1;
}
Mat dst, cdst, img2;
GaussianBlur(src,dst,Size(5,5),0);
cvtColor(dst, dst, CV_RGB2GRAY);
adaptiveThreshold(dst, dst, 255, CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY, 31, 15);
namedWindow("dst",WINDOW_NORMAL);
imshow("dst", dst);
有沒有一種方法來遍歷細胞,並在訂單作物呢?
非常感謝答覆。我會盡快嘗試。我正在使用tesseract引擎做ocr模塊。所以需要裁剪每個單元格,然後將其傳遞給tesseract。無論如何,我可以通過訂單裁剪輪廓嗎? – ChathuraSam
@ user3411228您應該使用某種排序方式,例如先按Y軸排序,然後按X軸排序,同時考慮到單元格的「浮動」邊框。例如:http://codepad.org/GBJBG5Iv – degot
再次感謝。 我試過你的第一個答案。你知道以下錯誤的原因嗎? '錯誤C4996:'sprintf':此函數或變量可能不安全。考慮使用sprintf_s代替。要禁用棄用,請使用_CRT_SECURE_NO_WARNINGS。' – ChathuraSam