Учитывайте, что у меня есть бинарное изображение 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
Изменение размера изображения/карты и изменение пространственного разрешения ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Изменение размера изображения/карты и изменение пространственного разрешения
Anonymous » » в форуме Python - 0 Ответы
- 45 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Библиотека Java для анализа геометрического объекта пространственного объекта
Anonymous » » в форуме JAVA - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-