bong10rno 0 Жалоба Опубликовано May 3, 2017 компилирую и запускаю пример http://docs.opencv.org/2.4/doc/tutorials/features2d/feature_homography/feature_homography.html но не проходит проверку if( !img_object.data || !img_scene.data ) { std::cout<< " --(!) Error reading images " << std::endl; return -1; } с чем это может быть связанно и как это исправить? А так же каким лучше методом узнать на сколько отличаются изображения друг от друга(например другое может быть немного меньше, со сдвигами и повернуто), после чего восстановить второе на сколько это возможно близко к первому? В каком направлении лучше копать? p.s.: vs17; opencv 2.4.13 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 3, 2017 img_obj и img_s не должны быть одной и той же матрицей. Клонируйте матрицу одну от другой, чтобы data были разные, если A=B то матрицы указывают на те же данные, делайте A=B.clone(); Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bong10rno 0 Жалоба Опубликовано May 3, 2017 14 минуты назад, Smorodov сказал: img_obj и img_s не должны быть одной и той же матрицей. Клонируйте матрицу одну от другой, чтобы data были разные, если A=B то матрицы указывают на те же данные, делайте A=B.clone(); не совсем понял, о чем вы Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 3, 2017 А, ок, мой глюк. Путь до изображения указываете полный? Какой формат изображений ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bong10rno 0 Жалоба Опубликовано May 3, 2017 1 минуту назад, Smorodov сказал: А, ок, мой глюк. Путь до изображения указываете полный? Какой формат изображений ? jpg пути разные перепробовал, в чем прикол, что на с IplImage *img= cvLoadImage все нормально, можно загрузить и вывести Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 3, 2017 Пробовали изображения бросать к экзешнику и запускать командной строкой из той же папки ? Вообще странно, никогда таких проблем не было, может OpenCV собралось плохо? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bong10rno 0 Жалоба Опубликовано May 3, 2017 Проблема решилась удалением из настроек компоновщика всех либ не имеющих d (opencv_calib3d2413d.lib) стало работать) Однако остался еще вопрос Цитата А так же каким лучше методом узнать на сколько отличаются изображения друг от друга(например другое может быть немного меньше, со сдвигами и повернуто), после чего восстановить второе на сколько это возможно близко к первому? В каком направлении лучше копать? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано May 4, 2017 1. По поводу похожести можно bag-of-words на базе sift https://github.com/shackenberg/Minimal-Bag-of-Visual-Words-Image-Classifier 2. Всякие перцептвные хеши http://www.phash.org/ 3. Ну и фичи из CNN сетей для CBIR (хотя сейчас даже дескрипторы типа sift делаются через нейросети) На счёт этого ' после чего восстановить второе на сколько это возможно близко к первому ' скорее всего только 1 подход поможет, т.к. там можно заматчить точки и получить матрицу гомографии. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
2expres 7 Жалоба Опубликовано May 4, 2017 Ну так же может помочь глубокая сегментация изображений (k-means), находить общие объекты и их сравнивать. Все приведенные решения тяжелы для выполнения. Вы бы привели примеры изображений, может есть более простой путь? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
bong10rno 0 Жалоба Опубликовано May 4, 2017 просто 2 фотографии 2я практически первая, например микроструктура поверхности до и после некоторого использования материала, в принципе похожи, но могут быть к тому же еще и деффекты, но может быть повернута с небольшим изменением масштаба нужно понять на сколько не ровно относительно первой она стоит и подогнать ее к первой Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах