blu*_*sky 2 python opencv image image-processing grayscale
使用此代码:
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
plt.imshow(cv2.imread('badger.jpeg' , cv2.IMREAD_GRAYSCALE))
Run Code Online (Sandbox Code Playgroud)
将图像读取为灰度并绘制到屏幕.
图像绘制为:
这似乎不是灰度,因为渲染图像中包含的颜色范围不是白色到灰色?
我的代码使用IMREAD_GRAYSCALE参数将图像作为灰度读取是否正确?
该图片位于:https://sciencing.com/difference-between-badger-wolverine-8645505.html
如果你使用的话,图像确实被压平成灰度cv2.IMREAD_GRAYSCALE(你可以使用cv2.imread('im.jpg', cv2.IMREAD_GRAYSCALE).shape和测试它cv2.imread('im.jpg').shape,并且看到前者是3维阵列而后者是2维阵列)
问题在于matplotlib选择映射像素值的方式.当使用plt.imshow(),它使用的是默认颜色映射(这是viridis出于某种原因).这意味着像素强度/值将映射到以下内容:
您可以更改cmap为gray,以便将它们映射到以下内容:
plt.imshow(cv2.imread('badger.jpeg', cv2.IMREAD_GRAYSCALE), cmap='gray')
plt.show()
Run Code Online (Sandbox Code Playgroud)