Я написал функцию калибровки камеры, используя набор изображений в 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
Функция CalibrateCamera OpenCV возвращает неправильное значение, которое в настоящее время превышает 244 (должно быть <1 ⇐ C++
Программы на C++. Форум разработчиков
1751983444
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()
Подробнее здесь: [url]https://stackoverflow.com/questions/79694328/the-calibratecamera-opencv-function-return-the-wrong-value-which-is-currently-g[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия