Alenorze
@Alenorze
Не люблю Индию

Почему функция возвращает None?

Вообщем нужна была Cuda c opencv, пришлось делать функции на C++, и брать их внутри Python. Но плюсы я вообще не знаю, делаю на угад. Вообщем дошел к моменту когда не тыканием не исправить.

Эта функция возвращает None, хотелось бы вернуть image, чтоб дальше его использовать
CV_EXPORTS_W void* gpuResize(string path, int maxwidth, int height)
        {                       
            Mat inputCpu = imread(path, IMREAD_COLOR);
            cv::cuda::GpuMat input(inputCpu);
            if(input.empty())
            {
                std::cout<<"Image Not Found: "<< path << std::endl;
                return 0; 
            }
            cv::cuda::GpuMat output;
            cv::cuda::resize(input, output, Size(maxwidth, height), 1, 1, INTER_LINEAR);

            Mat outputCpu;
	        output.download(outputCpu);
            input.release();
            output.release();
            return outputCpu.data;
        }
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
tsarevfs
@tsarevfs Куратор тега C++
C++ developer
4 и 5 параметры cv::cuda::resize это коофициенты на которые домножаются исходные ширина и высота изображения. Так можно увеличить его в 2 раза:
cv::cuda::resize(input, output, Size(), 2.0, 2.0, INTER_LINEAR);

Подозреваю что вы туда передаете что-то в пикселях и получаете гигантский результат, который не помещается в памяти.
Документация.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы