Изменение размера изображения/карты и изменение пространственного разрешенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Изменение размера изображения/карты и изменение пространственного разрешения

Сообщение Anonymous »

Учитывайте, что у меня есть бинарное изображение 4x4, то есть из одного канала, каждое значение пикселя находится в определенном месте (широта, долгота), и, следовательно, карта имеет определенное пространственное разрешение (по широте и долготе) . Я хочу изменить размер этой карты до другого размера, 7x11, а также изменить ее пространственное разрешение. Ниже приведен код на Python, который изначально решает эту проблему, но я не знаю, правильный ли он. Может ли кто-нибудь мне помочь, чтобы я мог уточнить, правильный ли этот код? Заранее спасибо.
import numpy as np
import skimage.transform
import matplotlib.pyplot as plt

def resize_to_new_resolution_and_range(image, old_lat_resolution, old_lon_resolution, old_lat_min, old_lat_max, old_lon_min, old_lon_max, new_lat_min, new_lat_max, new_lon_min, new_lon_max, new_lat_resolution, new_lon_resolution):
original_height, original_width = image.shape[:2]

new_height = int((new_lat_max - new_lat_min) / new_lat_resolution)
new_width = int((new_lon_max - new_lon_min) / new_lon_resolution)

resized_image = skimage.transform.resize(image, (new_height, new_width), mode='reflect', preserve_range=True)

latitudes = new_lat_min + np.arange(new_height) * new_lat_resolution
longitudes = new_lon_min + np.arange(new_width) * new_lon_resolution

return resized_image, latitudes, longitudes

image = np.random.rand(4, 4)
old_lat_min, old_lat_max = -25, -17.5
old_lon_min, old_lon_max = -55, -40
old_lat_resolution = -2.5
old_lon_resolution = 5.0

new_lat_min, new_lat_max = -25, -18
new_lon_min, new_lon_max = -54, -43
new_lat_resolution = 1.0
new_lon_resolution = 1.0

resized_image, new_latitudes, new_longitudes = resize_to_new_resolution_and_range(
image, old_lat_resolution, old_lon_resolution, old_lat_min, old_lat_max, old_lon_min, old_lon_max, new_lat_min, new_lat_max, new_lon_min, new_lon_max, new_lat_resolution, new_lon_resolution
)

print("Original image:")
print(image)

print("Resized image:")
print(resized_image)

print("Resized image shape:")
print(resized_image.shape)

print("New latitudes:")
print(new_latitudes)

print("New longitudes:")
print(new_longitudes)

plt.imshow(image, interpolation='gaussian')
plt.title('Original image')
plt.show()

plt.imshow(resized_image, interpolation='gaussian')
plt.title('Resized image')
plt.show()


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

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

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

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

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

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

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