有没有一种方法(使用 OpenCV 之类的东西)来检测文本倾斜并通过旋转图像来纠正它?差不多是这样?
如果您知道角度,旋转图像似乎很容易,但对于我正在处理的图像,我不会……需要以某种方式检测它。
最佳答案
根据您的上述评论,这里是基于教程 here 的代码, 上图效果很好,
来源
旋转
Mat src=imread("text.png",0);
Mat thr,dst;
threshold(src,thr,200,255,THRESH_BINARY_INV);
imshow("thr",thr);
std::vector<cv::Point> points;
cv::Mat_<uchar>::iterator it = thr.begin<uchar>();
cv::Mat_<uchar>::iterator end = thr.end<uchar>();
for (; it != end; ++it)
if (*it)
points.push_back(it.pos());
cv::RotatedRect box = cv::minAreaRect(cv::Mat(points));
cv::Mat rot_mat = cv::getRotationMatrix2D(box.center, box.angle, 1);
//cv::Mat rotated(src.size(),src.type(),Scalar(255,255,255));
Mat rotated;
cv::warpAffine(src, rotated, rot_mat, src.size(), cv::INTER_CUBIC);
imshow("rotated",rotated);
编辑:
另见答案 here , 可能会有帮助。
关于image - 通过旋转图像检测并修复文本倾斜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283532/