ilostmyid2 Ответов: 2

971001 - как устранить искажение "рыбий глаз" изображения?


Использование таких камер, как Bosch 5000 Panorama, дает изображение рыбьего глаза, которое мы должны дьюарпировать. Предлагаются некоторые методы дьюарпинга, но я предпочитаю прямоугольный, то есть дающий центр, который является точкой на изображении, внутренний радиус и внешний радиус будут отображать пиксели внутри границы в целевой прямоугольник.

1. Мне нужно операцию сделать на ГПУ.
2. я думаю, что OpenCV или любая другая библиотека может быть доступна для этого, но я не знаю, как это сделать. Кроме того, я открыт для использования пользовательского кода.
3. я ищу такую вещь: ссылка
4. я ищу решение на языке C#.

Любые предложения приветствуются.

Что я уже пробовал:

Я попытался отобразить пиксели один за другим из всего изображения в клиентский прямоугольник, но не получил хорошего результата. Перспектива явно неестественна. Теперь я думаю, что мне нужно прямоугольное решение.

2 Ответов

Рейтинг:
15

RickZeeland

Вероятно, это можно сделать с помощью Bosch Video SDK, но это не для слабонервных, смотрите результаты поиска здесь: Поиск[^]


ilostmyid2

Я не смог найти Bosch Video SDK в результатах поиска.

ilostmyid2

мои поиски привели меня к:
https://ipp.boschsecurity.com/en/news-events/product-news/video-sdk-6-04/video-sdk
со всем, кроме подходящего для этой цели решения

RickZeeland

Веб-сайты часто не актуальны, возможно, лучше всего связаться с Bosch напрямую, хотя мой опыт показывает, что трудно добраться до знающего человека. Я же говорил: не для слабонервных :)

ilostmyid2

Называть меня малодушным человеком и настаивать на этом-не самое лучшее решение проблемы, не так ли?
Во всяком случае, я потратил достаточно времени на доступные документы на сайте и не нашел ничего ценного.

RickZeeland

Напротив, я думаю, что вы не малодушны, так как вы, кажется, не сдаетесь так легко, просто это означало, что я тоже боролся с поддержкой Босха. Удачи и счастливого Рождества !

ilostmyid2

счастливого Рождества 2u2. я все еще удивляюсь, почему они избегают хорошей поддержки, в то время как это уменьшает их клиентов.

ilostmyid2

Я не знаю, почему они упорно не публикуют ни одного полезного технического документа. Я не знаю, в чем преимущество их сокрытия и в чем недостаток их легкой доставки.

ilostmyid2

Я думаю, что вы ответили на мой вопрос, упомянув "Bosch Video SDK". После его установки я нашел несколько источников на C#, которые могут быть использованы для решения этой проблемы. Хотя это решение относится только к Bosch, наш клиент в данный момент не собирается использовать какие-либо другие камеры.

RickZeeland

Добро пожаловать в удивительный мир VMS (Video Management System), мы всегда боролись с камерами Bosch и видеорегистраторами, потому что они не делали все стандартным образом. Если бы только все производители делали вещи стандартизированным способом, как ONVIF и RTSP, наша жизнь была бы намного проще !

ilostmyid2

Я согласен, но я думаю, что это просто альтернатива. Эта камера, как и многие другие камеры Bosch, поддерживает Onvif. По крайней мере, так утверждает Босх. Если бы я знал Onvif и как работать с камерой с помощью этого протокола, я мог бы получить преимущество от этого без необходимости использовать Bosch Video SDK.

ilostmyid2

Oh my! Just at the moment I thought I could succeed getting a correct image, I realized that this solution is not proper for me. Our software structure is client/server. Client-side is C# and if we would intend to get the correct image we could use this solution. But at the server-side, which is Linux, we connect to the cameras. When I reviewed the C# codes, I understood that rendering the control's surface is beyond our source control. It's done by the Bosch OCX'es and we have no access to the images/video. What I need is that the video may be got in Linux, recorded as a video stream to HDD, and be sent to client as a video stream. The worst case is when the servers are federated and client will have no access to the stream/camera. For this, I think we should be looking for another solution.
Есть идеи?

ilostmyid2

Другими словами, мы не "имеем" видео, чтобы сохранить или передать или сделать что-нибудь с ним. Мы можем просто "увидеть" его.

RickZeeland

Боюсь, что я не могу быть очень полезен в отношении Linux, так как наши виртуальные машины-это только Windows, единственное, что я могу придумать, - это виртуализация или что-то Докерское. Другим вариантом может быть простая установка клиентского программного обеспечения Bosch и вызов его из вашего приложения, когда это необходимо. Наверное, не то, что ты хочешь услышать ...

Рейтинг:
0

OriginalGriff

Видеть здесь: c# - Круговое изображение рыбий глаз dewarp к плоскому изображению - переполнение стека[^] - вы не найдете код, который точно делает то, что вы хотите, поэтому вам придется использовать формулы преобразования, приведенные там, и самостоятельно решить, что именно вам нужно.


ilostmyid2

Я видел url-адрес, но результат оказался совсем не таким, как я ожидал. Это дает просто лучшую форму всего изображения. Он не делает прямолинейного деформирования.