код для обнаружения перекоса изображения в opencv python

Как преобразовать код для обнаружения и исправления перекоса в изображении, используя 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

Другие решения


По вопросам рекламы [email protected]