Преобразуйте изображение в вид птичьего полета
преобразует вход изображение, J
= transformImage(birdsEye
,I
)I
, к изображению с видом на птицу, J
. The OutputView
и ImageSize
свойства birdsEyeView
объект, birdsEye
, определите фрагмент I
для преобразования и размера J
, соответственно.
Создайте изображение вида птицы из изображения, полученного фронтальной камерой, установленной на транспортном средстве. Отображение точек в пределах вида птичьего полета с помощью систем координат транспортного средства и изображения.
Задайте внутренности камеры и создайте объект, содержащий эти внутренности.
focalLength = [309.4362 344.2161]; principalPoint = [318.9034 257.5352]; imageSize = [480 640]; camIntrinsics = cameraIntrinsics(focalLength,principalPoint,imageSize);
Установите высоту камеры около 2 метров над землей. Установите тангаж камеры равным 14 степеням к земле.
height = 2.1798; pitch = 14;
Создайте объект, содержащий строение камеры.
sensor = monoCamera(camIntrinsics,height,'Pitch',pitch);
Определите область перед камерой, которую вы хотите преобразовать в вид птичьего полета. Установите площадь от 3 до 30 метров перед камерой, с 6 метрами по обе стороны камеры.
distAhead = 30; spaceToOneSide = 6; bottomOffset = 3; outView = [bottomOffset,distAhead,-spaceToOneSide,spaceToOneSide];
Установите ширину выходного изображения 250 пикселей. Автоматическое вычисление длины выхода по ширине путем установки длины равной NaN
.
outImageSize = [NaN,250];
Создайте объект для выполнения преобразований вида птицы с помощью ранее определенных параметров.
birdsEye = birdsEyeView(sensor,outView,outImageSize);
Загрузите изображение, которое было захвачено датчиком.
I = imread('road.png'); figure imshow(I) title('Original Image')
Преобразуйте вход изображение в изображение с видом на глаз птицы.
BEV = transformImage(birdsEye,I);
На изображении с видом на глаз птицы разместите 20-метровый маркер непосредственно перед датчиком. Используйте vehicleToImage
функция для определения местоположения маркера в координатах транспортного средства. Отобразите маркер на изображении с видом на глаз птицы.
imagePoint = vehicleToImage(birdsEye,[20 0]); annotatedBEV = insertMarker(BEV,imagePoint); annotatedBEV = insertText(annotatedBEV,imagePoint + 5,'20 meters'); figure imshow(annotatedBEV) title('Bird''s-Eye-View Image: vehicleToImage')
Определите местоположение в исходном изображении вида птицы, на этот раз в координатах изображения. Используйте imageToVehicle
функция для преобразования координат изображения в координаты автомобиля. Отобразите расстояние между маркером и передней частью транспортного средства.
imagePoint2 = [120 400]; annotatedBEV = insertMarker(BEV,imagePoint2); vehiclePoint = imageToVehicle(birdsEye,imagePoint2); xAhead = vehiclePoint(1); displayText = sprintf('%.2f meters',xAhead); annotatedBEV = insertText(annotatedBEV,imagePoint2 + 5,displayText); figure imshow(annotatedBEV) title('Bird''s-Eye-View Image: imageToVehicle')
birdsEye
- Объект для преобразования изображения в вид птичьего полетаbirdsEyeView
объектОбъект для преобразования изображения в вид птичьего полета, заданный как birdsEyeView
объект.
I
- Входное изображениеВходное изображение, заданное как труколор или полутоновое изображение. The OutputView
свойство birdsEye
определяет фрагмент I
для преобразования в вид птичьего полета.
I
не должен содержать искажения объектива. Вы можете удалить искажение объектива при помощи undistortImage
функция. В оптике высокого класса можно игнорировать искажения.
J
- Изображение с видом на птицуИзображение с видом на птицу, возвращаемое как изображение в виде труколора или полутонового цвета. The ImageSize
свойство birdsEye
определяет размер J
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.