У меня есть цифровое изображение, которое при построении графика с использованием plt.imshow
и plt.pcolormesh
дает следующие результаты . Обратите внимание, что для plt.pcolormesh
начало координат O смещено в центр путем переопределения границ осей. У меня вопрос: почему при использовании plt.pcolormesh
изображение переворачивается (как оно есть)?
Моя цель состоит в том, чтобы график изображения находился в той же позиции, но с новыми значениями координат относительно его нового источника (в центре) - показанного как зеленое пятно на рис. 2 этого изображение . Можно перевернуть перевернутое изображение в исходное состояние, выполнив некоторые алгебраические манипуляции, но каковы уравнения и почему?
Код представляет собой простой прямой сюжет. Вот код для создания первого изображения (результатов):
img = cv2.imread("../42.bmp") # read the image
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # convert to grayscale
gray_arr = np.asarray(gray) # convert to a 2D numpy array
nptsx = img.shape[1] # Total number of pixels along x axis
nptsy = img.shape[0] # Total number of pixels along y axis
# Limits of the x and y axes. We want to have Origin in the center.
limits = [-nptsx//2 + 1, nptsx//2, -nptsy//2 + 1, nptsy//2]
#Creating 2D Meshgrid
x = np.linspace(limits[0], limits[1], nptsx)
y = np.linspace(limits[2], limits[3], nptsy)
X1, X2 = np.meshgrid(x, y)
plt.subplots(figsize = (8, 4))
plt.subplot(121) # image plot using plt.imshow
plt.xlabel('x-position (px)')
plt.ylabel('y-position (px)')
plt.title('plt.imshow')
plt.imshow(gray, cmap = 'gray')
plt.grid()
plt.subplot(122) # image plot using plt.pcolormesh
plt.xlabel('x-position (px)')
plt.ylabel('y-position (px)')
plt.title('plt.pcolormesh')
plt.pcolormesh(X1, X2, gray, cmap = 'gray')
plt.grid()
plt.tight_layout()
plt.show()
Заранее спасибо !!