在opencv python中对图像进行倾斜检测的代码

Posted

技术标签:

【中文标题】在opencv python中对图像进行倾斜检测的代码【英文标题】:code for skew detection of image in opencv python 【发布时间】:2015-07-02 16:34:15 【问题描述】:

如何使用 OpenCV c++ 将用于图像倾斜检测和校正的代码转换为 OpenCV python。我尝试转换以下代码,但它不起作用。

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);

【问题讨论】:

【参考方案1】:

*它总是正确的。我觉得你应该试试

if (!thr.at<uchar>(it.pos()))

也许是你的错

【讨论】:

在阈值之后*它评估为 0 或 255 并正确转换为 bool

以上是关于在opencv python中对图像进行倾斜检测的代码的主要内容,如果未能解决你的问题,请参考以下文章

使用opencv将旋转和倾斜的图像插入另一个图像中检测到的矩形?

Python + OpenCV:OCR 图像分割

在Python中检测线的倾斜度[关闭]

OpenCV中对图像进行二值化的关键函数——cvThreshold()。

在OpenCV Python中检测/提取图像之间的最大差异

python使用openCV图像加载(转化为灰度图像)Harris角点检测器算法(Harris Corner Detector)进行角点检测在图像上标记每个角点可视化标记了角点的图像数据