У меня есть вопрос, связанный с модульным тестированием некоторых алгоритмов обработки изображений. В качестве примера возьмем поворот изображения, чтобы выполнить поворот изображения, как правило, нам нужны два параметра: один - это угол поворота, а другой - метод повторной выборки, а функция, которая выполняет поворот изображения, имеет следующую подпись:
void rotate_image(const Image &image, const double rotationAngle, const int rotationMethod, Image &rotatedImage);
Затем, как мы можем создать хорошую модульную тестовую среду для тестирования этой функции? В настоящее время единственным решением, которое я могу выяснить, является: сначала получить изображение истины земли (то есть повернутое изображение с обозначением угла поворота и метод повторной выборки), используя другие современные пакеты программного обеспечения (например,, MATLAB Image Processing Toolbox); после чего получается повернутое изображение с использованием реализованной функции; наконец, сравнить два изображения. Если абсолютная сумма разностного изображения меньше порога, то функция проходит единичный тест. Мне было интересно, есть ли другие решения для решения этой проблемы. Благодарю.
Мне приходят в голову некоторые тестовые примеры:
Очевидно, что во всех случаях у вас будут небольшие ошибки точности, вы должны определить допуски.