vpa*_*pap 3 python opencv matplotlib grayscale imshow
我有一个灰度图像作为 numpy 数组,具有以下属性
shape = ( 3524, 3022), dtype = float32, min = 0.0, max = 1068.16
绘制的灰色图像plt.imshow( gray, cmap = 'gray, vmin = 0, vmax = 80)看起来像这样,
我想把它转换成RGB。我尝试了多种方法,例如 np.stack、cv2.merge、cv2.color 创建 3D np.zeros 图像并将灰度图像分配给每个通道。当我绘制 3D 图像时,我得到的图像非常暗淡,并且根本看不到“斑点”。我也尝试将其范围转换为 [ 0, 1] 或 [ 0, 255] 范围但无济于事。
使用 np.stack plt.imshow( np.stack(( new,)*3, axis = 2)),我得到这个,
我应该怎么办?提前致谢!
标准化图像的一种方法是使用 cv2.normalize 和norm_type=cv2.NORM_MINMAX。它将把您的数据拉伸或压缩到 0 到 255 的范围(使用 alpha 和 beta 参数)并保存为 8 位类型。
# normalize
norm = cv2.normalize(gray, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)
print(norm.shape, norm.dtype)
# convert to 3 channel
norm = cv2.cvtColor(norm, cv2.COLOR_GRAY2BGR)
print(norm.shape, norm.dtype)
print(np.amin(norm),np.amax(norm))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8602 次 |
| 最近记录: |