Просто так.
response.categories.forEach { print([110].categoryName) }
Обычный способ решить это путем выполнения его назад. Вместо того, чтобы вычислить, где каждый пиксель во входном изображении заканчивается в выходном изображении, Вы вычисляете, где каждый пиксель в выходном изображении расположен во входном изображении (rotationg та же сумма в другом направлении. Таким образом, можно быть уверены, что все пиксели в выходном изображении будут иметь значение.
output = new Image(input.size())
for each pixel in input:
{
p2 = rotate(pixel, -angle);
value = interpolate(input, p2)
output(pixel) = value
}
Существуют различные способы сделать интерполяцию. Для формулы вращения я думаю, что необходимо проверить https://en.wikipedia.org/wiki/Rotation_matrix#In_two_dimensions
Но только быть хорошим, здесь это - (вращение точки (x, y) угловые градусы/радианы):
newX = cos(angle)*x - sin(angle)*y
newY = sin(angle)*x + cos(angle)*y
Примечание там является другим решением кроме матриц вращения, которое не освобождает данные изображения посредством искажения. Можно разделить 2D поворот изображения на скосы и масштабирования, которые сохраняют качество изображения.
На пример кажется, что Вы обеспечили, некоторое граничное ядро обнаружения. Таким образом, если то, что Вы хотите, обнаруживают края различных углов, необходимо выбрать некоторую непрерывную функцию (который в случае мог бы быть параметрическим гауссовым из x1, умноженного на x2), и затем поверните его согласно формулам, обеспеченным kigurai. В результате Вы смогли бы произвести дискретное ядро более эффективно и без искажения.
Чтобы повернуть изображение, вы создаете 3 точки:
A----B
|
|
C
и поворачиваете их вокруг A. Чтобы получить В новом повернутом изображении вы сделаете это:
При рисовании я немного изменяю указатели источника, чтобы получить резиноподобный эффект, но если вы отключите это, вы увидите, что код поворачивает изображение без проблем. Конечно, под некоторыми углами вы получите изображение, которое выглядит слегка искаженным. Исходный код содержит комментарии о том, что происходит, поэтому вы сможете легко понять математику / логику.
Если вам больше нравится Java, я также однажды сделал 14-летнюю версию java;) -> http://www.xs4all.nl/~perseus/zoom/zoom.java