Преобразуйте изображение к виду с высоты птичьего полета
преобразовывает входное изображение, J
= transformImage(birdsEye
,I
)I
, к изображению вида с высоты птичьего полета, J
. 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
— Введите изображениеВведите изображение в виде истинного цвета или полутонового изображения. OutputView
свойство birdsEye
определяет фрагмент I
преобразовать к виду с высоты птичьего полета.
I
не должен содержать искажение объектива. Можно удалить искажение объектива при помощи undistortImage
функция. В высокопроизводительной оптике можно проигнорировать искажение.
J
— Изображение вида с высоты птичьего полетаИзображение вида с высоты птичьего полета, возвращенное как истинный цвет или полутоновое изображение. ImageSize
свойство birdsEye
определяет размер J
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.