Поверните изображение на заданный угол
Геометрические преобразования
visiongeotforms
Используйте блок Вращать (Rotate), чтобы повернуть изображение на угол, заданный в радианах.
Примечание
Этот блок поддерживает интенсивность и цветные изображения на своих портах.
Порт | Описание |
---|---|
Изображение | Матрица M-на-N значений интенсивности или цветовой видеосигнал M-на-N-на-P, где P - количество цветовых плоскостей |
Угол | Угол поворота |
Выход | Повернутая матрица |
Блок Rotate использует 3-пасовый алгоритм вращения сдвига, чтобы вычислить его значения, который отличается от алгоритма, используемого imrotate
функция в Image Processing Toolbox™.
Следующая схема показывает типы данных, используемые в блоке Rotate для билинейной интерполяции сигналов с фиксированной точкой.
Можно задать значения угла, выход продукта, аккумулятор и типы выходных данных в маске блока.
Блок Rotate требует дополнительных типов данных. Значение таблицы Sine имеет тот же размер слова что и тип данных угла, и длину дроби, которая равна его размеру слова минус единице. Следующая схема показывает, как эти типы данных используются внутри блока.
Примечание
Если происходит переполнение, повернутое изображение может показаться искаженным.
Задайте размер повернутой матрицы. Если вы выбираете Expanded to fit rotated input image
блок выводит матрицу, которая содержит все повернутые значения изображения. Если вы выбираете Same as input image
блок выводит матрицу, которая содержит среднюю часть повернутого изображения. В результате ребер повернутого изображения могут быть обрезаны. Используйте параметр Background fill value, чтобы задать пиксельные значения вне изображения.
Задайте, как ввести угол поворота. Если вы выбираете Specify via dialog
параметр Angle (radians) появляется в диалоговом окне.
Если вы выбираете Input port
Порт Угол появляется на блоке. Блок использует вход к этому порту в каждом временном шаге как угол поворота. Значение входа к порту Угла должно быть совпадающий тип данных как значение входа к порту I.
Введите действительное, скалярное значение для вашего угла поворота. Этот параметр видим, если для параметра Rotation angle source вы выбираете Specify via dialog
.
Когда угол поворота является произведением pi/2, блок использует более эффективный алгоритм. Если значение угла, которое вы вводите для параметра Angle (radians), находится в пределах 0,00001 радианов, кратных pi/2, блок округляет значение угла до кратного pi/2 перед выполнением вращения.
Введите максимальный угол поворота входа изображения. Введите скалярное значение, между 0
и радианы. Блок определяет, какой угол, , требует наибольшей выходной матрицы и устанавливает размерности порта выхода соответственно.
Этот параметр видим, если вы задаете параметр Output size, равный Expanded to fit rotated input image
, и параметр Rotation angle source для Input port
.
Задайте способ поворота изображения. Если вы выбираете Center
изображение поворачивается вокруг его центральной точки. Если вы выбираете Top-left corner
блок вращает изображение так, чтобы два угла повернутого входного изображения всегда находились в контакте с верхней и левой сторонами выходного изображения.
Этот параметр видим, если для параметра Output size вы выбираете Expanded to fit rotated input image
, и, для параметра Rotation angle source, вы выбираете Input port
.
Задайте метод расчета значения. Если вы выбираете Trigonometric function
блок вычисляет значения синуса и косинуса, необходимые для вычисления поворота вашего изображения во время симуляции. Если вы выбираете Table lookup
блок вычисляет и хранит тригонометрические значения, необходимые для вычисления поворота вашего изображения перед началом симуляции. В этом случае блоку требуется дополнительная память.
Задайте значение для пикселей, которые находятся вне изображения.
Укажите, какой метод интерполяции использует блок для перевода изображения. Если вы выбираете Nearest neighbor
, блок использует значение одного ближайшего пикселя для нового значения пикселя. Если вы выбираете Bilinear
новое значение пикселя является взвешенным средним значением четырех ближайших значений пикселя. Если вы выбираете Bicubic
новое значение пикселя является взвешенным средним значением из шестнадцати ближайших значений пикселя.
Количество пикселей, которое блок рассматривает, влияет на сложность расчетов. Поэтому Nearest-neighbor
интерполяция является наиболее в вычислительном отношении эффективной. Однако, поскольку точность метода пропорциональна количеству рассматриваемых пикселей, Bicubic
метод является наиболее точным.
Выберите режим округления для операций с фиксированной точкой.
Выберите режим переполнения для операций с фиксированной точкой.
Выберите, как задать размер слова и длину дроби значений угла.
Когда вы выбираете Same word length as input
, размеры слова значений угла совпадают с углом входа к блоку. В этом режиме длина дроби значений угла автоматически устанавливается на шкалу только с двоичной точкой, которая обеспечивает вам лучшую точность, учитывая значение и размер слова значений угла.
Когда вы выбираете Specify word length
, можно ввести размер слова значений угла, в битах. Блок автоматически устанавливает длину дроби, чтобы дать вам лучшую точность.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и длину дроби значений угла, в битах.
Когда вы выбираете Slope and bias scaling
можно ввести длину размера слова в битах и наклон значений угла. Смещение всех сигналов в блоках Computer Vision Toolbox™ составляет 0.
Этот параметр видим, только если для параметра Rotation angle source вы выбираете Specify via dialog
.
Как показано на предыдущем рисунке, выход умножителя помещается в тип выходных данных продукта и масштабирование. Используйте этот параметр, чтобы задать, как обозначить это выходное слово продукта и длины дроби.
Когда вы выбираете Same as first input
эти характеристики совпадают с характеристиками входов блока.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и длину дроби выходного продукта, в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова, в битах, и наклон продукта выхода. Смещение всех сигналов в блоках Computer Vision Toolbox равно 0.
Как показано на предыдущем рисунке, входы в аккумулятор приводятся к типу данных аккумулятора. Выход сумматора остается в типе данных аккумулятора, когда к нему добавляется каждый элемент входа. Используйте этот параметр, чтобы задать, как обозначить это слово аккумулятора и длины дроби.
Когда вы выбираете Same as product output
, эти характеристики совпадают с характеристиками выходных данных продукта.
Когда вы выбираете Same as first input
эти характеристики совпадают с характеристиками первого входа в блок.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и длину дроби аккумулятора, в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова, в битах, и наклон аккумулятора. Смещение всех сигналов в блоках Computer Vision Toolbox равно 0.
Выберите, как задать размер слова и длину дроби выхода блока:
Когда вы выбираете Same as first input
эти характеристики совпадают с характеристиками первого входа в блок.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и длину дроби выхода, в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова, в битах, и наклон выхода. Смещение всех сигналов в блоках Computer Vision Toolbox равно 0.
Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока. Для получения дополнительной информации см. fxptdlg
(Fixed-Point Designer), ссылочная страница на Fixed-Point Tool в Simulink® документация.
Порт | Поддерживаемые типы данных |
---|---|
Изображение |
|
Угол | То же, что и порт Image |
Выход | То же, что и порт Image |
Если тип данных входного сигнала с плавающей точкой, выходной сигнал является совпадающим типом данных, как и входной сигнал.
[1] Вольберг, Джордж. Деформация цифрового изображения. Вашингтон: IEEE Computer Society Press, 1990.