Преобразовать и переназначить равноугольное изображение с помощью рулона на 90 °Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Преобразовать и переназначить равноугольное изображение с помощью рулона на 90 °

Сообщение Anonymous »

Я должен преобразовать и переоценить эквируктовое изображение в другое равногорное изображение с рулоном на 90 °. Так что я не могу использовать G.U.I. Чтобы сделать это. Я попробовал сценарии Fred Imagemagick, но никого не мог найти, чтобы делать то, что я хочу. Более того, время обработки изображения кажется очень длинным по сравнению с pano2vr .
Я направил свои исследования на opencv и либегномонный. В настоящее время это самый интересный способ. Эта библиотека позволяет пользователю преобразовать прогнозы (равногорные в прямолинейную и наоборот) или делать равноугольное отображение. Я играл с Norama-Suite, который содержит несколько сценариев, чтобы справиться с библиотекой. Например, я хотел бы преобразовать прямолинейное изображение в равноправное, но вывод был просто черным фоновым изображением (почему? Я не нашел ответ).
Однако эта вторая ссылка может решить мою проблему. У меня есть это изображение:

и я хочу преобразовать это с этим изображением
и я хочу преобразовать это изображение
и я хочу преобразовать это с этим изображением
и я хочу преобразовать это изображение src = "Изображение? />[*]https://www.github.com/foxelsa/libgnomo ... ransform.h
https://www.github.com/foxelsa/libgnomo ... r.cr.crcbr /> < /ul>
Но я не знаю как. И, прежде всего, я хочу понять. < /P>
Я правильно? Какое преобразование применяется на первом изображении? Есть ли способ сделать это с помощью Python или сценария Bash? Изменен. < /p>
import math
from PIL import Image

img = Image.open("img1.jpg")
img = img.convert('RGB')
pixel = img.load()
width, height = img.size

img2 = img.copy()
for y in xrange(height):
for x in xrange(width):
xx = 2*(y+0.5) / width - 1.0
yy = 2*(y+0.5)/ height - 1.0
lng = math.pi * xx
lat = 0.5 * math.pi * yy

# NOTE! These axes are transposed because that's what the question is about
Z = math.cos(lat) * math.cos(lng) # normally X
Y = math.cos(lat) * math.sin(lng) # normally Y
X = -math.sin(lat) # normally -Z
D = math.sqrt(X*X+Y*Y)

lat = math.atan2(Z, D) # ? normally lat = math.asin(Z)
lng = math.atan2(Y, X)

#ix and iy must be integers
ix = int((0.5 * lng / math.pi + 0.5) * width - 0.5)
iy = int((lat/math.pi + 0.5) * height - 0.5)

#not sure of this part to remap the image
newpixel = pixel[ix, iy]
img2.putpixel([(x+width/4) % width, y], newpixel)
#I tries as mentioned in the following code to invert x and y in the two previous lines but the index error out of range comes back
img2.show()


Подробнее здесь: https://stackoverflow.com/questions/352 ... -a-90-roll
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»