Комментарии 9
По моим наблюдениям, именение размера изображений, OpenCV CUDA (cv::cuda::resize) работает в раза три быстрей чем OpenCV CPU (cv::resize). Тестировал в C++ проэкте.
Из документации:
cuda::resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR, Stream& stream=Stream::Null())
interpolation – Interpolation method.INTER_NEAREST
,INTER_LINEAR
andINTER_CUBIC
are supported for now.
Если INTER_CUBIC
интерпретируется так же, как в самом cv::resize
(то есть при уменьшении берется фиксированное ядро в окружности ближайшей точки), то такой ресайз (а точнее такое качество) никому не нужно. А более-менее приемлемого значения INTER_AREA
тут нет.
Понять, в чем проблема в ресайзе с фиксированным ядром, можно, например, прочитав соответствующую главу в моей недавней статье.
Во избежание подобного: «Удалённое выполнение кода».
Уделяли ли вы внимание вопросу безопасности при разработке, когда источник изображения не является доверенным?
У меня нет какой-то большой истории про безопасность, которую бы я мог рассказать. Да, уделяли, как иначе. Численно оценить это сложно. Таких глобальных уязвимостей, с исполнением кода, насколько я знаю, не было. Но понятно, что чем распространеннее библиотека, тем больше в ней ищут уязвимости. Pillow намного менее распространенна, чем тот же ImageMagick, так что есть два варианта, либо еще не нашли, либо их нет.
размытие по Гауссу, которое работает за константное время относительно радиуса
Это значит с увеличением радиуса время останется тем же? Как оно работает?
Совершенно верно. Работает через апроксимацию серией бокс-фильтров. Народ и раньше догадывался, что несколько бокс-фильтров выдают результат, похожий на размытие по Гауссу. Но всё встало на места после работы немецких исследователей.
Ага, такой способ мне известен. Даже не знаю чего ожидал, наверное чего-нибудь типа такого — https://habr.com/post/151157/
Работа с изображениями на Python