為什么當我在scikit image中使用rescale時,影像的顏色會發生變化?
importmatplotlib.pyplot as plt
from skimage.transform import rescale
im = imread('C:/abc.jpg')
plt.imshow(im)
plt.show()
im_rescaled = rescale(im , 0.25)
plt.imshow(im_rescaled)
plt.show()
uj5u.com熱心網友回復:
rescale不知道你已經傳遞了一個2D的彩色影像。當你加載它時,它是一個形狀為(100, 100, 3)的陣列,其中最后一個軸的3個元素是紅、綠、藍通道。rescale默認情況下沿著所有軸重新縮放,所以你最終得到了一個形狀為(25, 25, 1)的影像。Matplotlib忽略了這最后一個軸,并使用其默認的顏色映射viridis將其渲染成灰度影像,這就是為什么它看起來是綠色的。
為了使重新縮放只在行軸和列軸上發揮作用,而不是沿著通道軸,請使用
im_rescaled = rescale(im, 0.25, multichannel=True)
這將給你一個形狀為(25, 25, 3)的重新縮放的影像,將所有三個顏色通道都是預期的。
您可以在scikit-image API docs中閱讀更多關于重新縮放 API 的資訊。
。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/328936.html
標籤:
下一篇:安裝Vue.jsCli失敗

