0 800 330 485
Працюємо без вихідних!
Гаряча лінія
Графік роботи
Пн - Пт 09:00 - 20:00
Сб - Нд 10:00 - 17:00
Пишіть в чат:
Для отримання інформації щодо існуючого замовлення - прохання використовувати наш внутрішній чат.

Щоб скористатися внутрішнім чатом:

  1. Авторизуйтеся у кабінеті клієнта
  2. Відкрийте Ваше замовлення
  3. Можете писати та надсилати файли Вашому менеджеру

Методы интерполяции изображений с использованием OpenCV (ID:110998)

Тип роботи: курсова
Дисципліна:Програмування
Сторінок: 29
Рік виконання: 2015
Вартість: 400
Купити цю роботу
Зміст
Введение 1. Установка OpenCV 2.4.11.0 для работы с Visual Studio 2010 2. Настройка среды для компиляции/линковки приложений 3. Алгоритмы интерполяции изображений и их реализация в OpenCV 4. Алгоритмы метрик PSNR и MSSIM для оценки потерь при восстановлении изображений и их реализация 5. Структура приложения 6. Тестирование и результаты работы Заключение Список литературы Приложения
Не підійшла ця робота?
Ви можете замовити написання нової роботи "під ключ" із гарантією
Замовити нову
Зразок роботи
Приложение решает следующие задачи: — запрос имени файла с изображением у пользователя; — загрузка файла с изображением; — уменьшение изображения в 2 раза методом INTER_AREA; — восстановление изображения (обратное увеличение в 2 раза) с использованием всех доступных методов интерполяции; — определение качества восстановления для каждого из методов интерполяции с использованием метрик PSNR и MSSIM; — вывод результатов. Рассмотрим реализацию каждой из задач подробней. Запрос имени файла с изображением у пользователя string file_name; cout << "File to open: "; getline (cin, file_name); Загрузка файла с изображением Учитывая ряд проблем, которые могут возникнуть при обработке файла с изображением, его загрузка и считывание в объект Mat производится в блоке try-catch   Mat original; try { original = imread(file_name, IMREAD_COLOR); // Read the file namedWindow("Source image", WINDOW_AUTOSIZE);// Create a window for display imshow("Source image", original); // Show source image } catch (Exception& e) { const char* err_msg = e.what(); cout << "Open file exception caught: " << err_msg << endl; waitKey(0); return 1; } Уменьшение изображения в 2 раза Согласно документации OpenCV для уменьшения изображений предпочтительным является метод интерполяции INTER_AREA [37]. Mat src; resize (original, src, Size(), 0.5, 0.5, INTER_AREA); namedWindow("Reduced image", WINDOW_AUTOSIZE); imshow("Reduced image", src); Восстановление изображения c использованием всех доступных методов интерполяции Для билинейной интерполяции: Mat bilinear; resize (src, bilinear, original.size(), 0, 0, INTER_LINEAR); namedWindow("Bilinear interpolation", WINDOW_AUTOSIZE); imshow("Bilinear interpolation", bilinear); method[0] = "bilinear"; psnr[0] = getPSNR (original, bilinear); mssim[0] = getMSSIM (original, bilinear); для других методов – аналогично. Определение качества восстановления для каждого из методов интерполяции с использованием метрик PSNR и MSSIM Для сохранения результатов по каждому из методов используем массивы double psnr[5]; Scalar mssim[5]; Вывод результатов printf ("Method \tPSNR, dB\tMSSIM:R,%%\tG,%%\tB,%%\n"); printf ("___________________________________________________________________\n"); for (int i = 0; i<5; i++) { if (psnr[i] == -1.0) mssim[i].val[0] = mssim[i].val[1] = mssim[i].val[2] = 0.0; printf("%s \t %.3lf\t\t %.1lf\t %.1lf\t %.1lf\n", method[i].c_str(), psnr[i], mssim[i].val[2]*100, mssim[i].val[1]*100, mssim[i].val[0]*100); } Таким образом, приложение выполняет все поставленные задачи.