Функция CalibrateCamera OpenCV возвращает неправильное значение, которое в настоящее время превышает 244 (должно быть <1C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Функция CalibrateCamera OpenCV возвращает неправильное значение, которое в настоящее время превышает 244 (должно быть <1

Сообщение Anonymous »

Я написал функцию калибровки камеры, используя набор изображений в OpenCV 4.11.0. Я искал много веб -сайтов, и все написали это, однако значение, возвращаемое CalibrateCamera, больше, чем 244. Где проблема? Мне сказали, что это должно быть
cameraFunc.ScanStandardConnersEx(2, "C:/Users/WV/Desktop/Workspace/CameraCL/data/standard2/%1left.jpg", "C:/Users/WV/Desktop/Workspace/CameraCL/data/standard2/%1right.jpg");

const int BOARD_CORNERS_X = 60; // row
const int BOARD_CORNERS_Y = 33; // col
const float SQUARE_SIZE = 30; // gird size (30mm)

void CameraFunc::ScanStandardConnersEx(int imagesCount, std::string left_format, std::string right_format)
{
QMutex mutex,mutex_index, mutex_img;
std::vector objPoints;
std::vector imgPoints_left, imgPoints_right;
std::vector imgcpy_left, imgcpy_right;
QSize img_size_record;
bool img_size_flag = false;
bool img_test = false;
int index = 0;
cv::parallel_for_(cv::Range(0, 100), [&](const cv::Range& range) {
int i = index;
mutex_index.lock();
index++;
mutex_index.unlock();
{
//get path
QString path_left = QString(QString::fromStdString(left_format).arg(i));
QString path_right = QString(QString::fromStdString(right_format).arg(i));
if(!QFile::exists(path_left) || !QFile::exists(path_right))
{
return;
}
//load image
std::string pathstd_left = path_left.toStdString();
cv::Mat img_left_ = cv::imread(pathstd_left.c_str(), cv::IMREAD_COLOR_BGR);//cv::IMREAD_GRAYSCALE
cv::Mat img_left = img_left_.clone();
mutex_img.lock();
cv::cvtColor(img_left_, img_left, cv::COLOR_BGR2GRAY);
mutex_img.unlock();

std::string pathstd_right = path_right.toStdString();
cv::Mat img_right_ = cv::imread(pathstd_right.c_str(), cv::IMREAD_COLOR_BGR);
cv::Mat img_right = img_right_.clone();
mutex_img.lock();
cv::cvtColor(img_right_, img_right, cv::COLOR_BGR2GRAY);
mutex_img.unlock();

//check image
if (img_left.empty() || img_right.empty()) {
qDebug()

Подробнее здесь: https://stackoverflow.com/questions/796 ... urrently-g
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»