Matplotlib:在更改图像时保持缩放不起作用



我使用matplotlib和一个更新函数,该功能在按键时触发,以便在特定文件夹中循环浏览大量图像。

这是我的更新功能的一部分:

# skipping through the images with a and d
if event.key == "d":
if photoIndex == numberOfPhotos-1:
photoIndex = 0
else:
photoIndex += 1
elif event.key == "a":
if photoIndex == 0:
photoIndex = numberOfPhotos-1
else:
photoIndex -= 1
# Handle key press event
if event.key == "h":
if equalizeHistogram == False:
equalizeHistogram = True
elif equalizeHistogram == True:
equalizeHistogram = False
if event.key == "c":
if calculateEdges == False:
calculateEdges = True
elif calculateEdges == True:
calculateEdges = False
imagePath = imageFolder + os.listdir(imageFolder)[photoIndex]
unprocessedImage = cv2.cvtColor(cv2.imread(imagePath), cv2.COLOR_BGR2GRAY)
if equalizeHistogram == True:
image = np.uint8(cv2.normalize(unprocessedImage, None, 0, 255, cv2.NORM_MINMAX))
elif calculateEdges == False and equalizeHistogram == False:
image = unprocessedImage
im.set_data(image)

我可以使用"a"和"d"键更改图像的索引(以及显示的图像(。由于我使用 set_data((,因此缩放级别保持不变。

但是,当我按"h"键来均衡直方图时,它会再次缩小? 我很困惑,因为我唯一改变的是"图像"变量,当我循环浏览图片时,我也会改变它。

那么,为什么使用 set_data(( 不会在一个实例中更改缩放,但在另一个实例中会更改缩放?

我真的很感激任何帮助!

正如我关于同一主题的问题(https://stackoverflow.com/a/63169926/8837809(的回答:

与"a"和"d"不同,键"h"是matplotlib交互式导航键的一部分。

为了避免此问题,请使用其他键映射交互式导航:

import matplotlib as mpl
mpl.rcParams["keymap.home"] = ['r', 'home']   # default value is ['h', 'r', 'home']

最新更新