我有兩張用 matplotlib 顯示的影像imshow()。影像相互關聯,因此在縮放或平移時它們的行為方式應該相同。當它們具有相同的解析度時,這可以正常作業。但是當它們的解析度不同時,共享軸以(對我而言)意想不到的方式起作用。假設這是我的兩個影像,一個二維高斯影像,一個是 600x400,一個是 300x200 解析度。
當我共享軸時,會發生這種情況:

但是,我希望輸出與第一種情況一樣,但是在縮放或平移時,應相應地操縱第二張影像。像這樣,我希望能夠得到這樣的輸出:
我知道這些軸并不是真正共享的,但它們應該看起來像這樣。
我嘗試設定雙軸(比例減半),但這對于我的問題來說并不是很成功。
重現我附加并播放的影像的代碼:
import matplotlib.pyplot as plt
import numpy as np
from scipy.ndimage import zoom
w, h = 600, 400 # original resolution width & height
x, y = np.meshgrid(np.arange(w), np.arange(h))
gaussian = np.exp(-(np.sqrt((x - w/2) ** 2 (y - h/2) ** 2) ** 2 / (2.0 * 100 ** 2))) # 600x400
downsampled = zoom(gaussian, 0.5) # 300x200
ax_big = plt.subplot2grid((1, 2), (0, 0))
ax_big.imshow(gaussian, cmap='turbo')
ax_small = plt.subplot2grid((1, 2), (0, 1))
# I want something like this:
# ax_small = plt.subplot2grid((1, 2), (0, 1), sharex=ax_big, sharey=ax_big)
ax_small.imshow(downsampled, cmap='turbo')
plt.tight_layout()
plt.show()
uj5u.com熱心網友回復:
如果您不一定需要二次采樣影像的軸來顯示二次采樣的寬度/高度,而只是與您的縮放/平移相匹配的區域(我不能完全確定您的問題),您可以使用extent引數在ax_small.imshow()通話中。這指定了將顯示影像的坐標區空間中的有效矩形。默認情況下,這只是影像的像素大小,但您可以將大小設定為等于完全采樣影像的大小。
查看
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/406722.html
標籤:
