丢了理想的猫 2021-11-10 11:57 采纳率: 0%
浏览 237

在使用matplotlib库时,二值图像显示问题!

在使用matplotlib库时,二值图像显示问题!

在对图像二值化处理时,遇到的这个问题,当一张图全为1(255)时,无法正常的显示图片。求帮忙解决一下。试过Opencv可以正常显示,但不利于对图像数据的分析和观察。

"""
二值图像显示全白问题
"""
import  numpy as np

import  matplotlib.pyplot as  plt

import cv2

image_0 = np.zeros((200,200))

image_01 = np.concatenate((np.zeros((200,100)),np.ones((200,100))), axis =1)

image_1= np.ones((200,200))

image_255 = image_1*255

plt.rcParams['font.sans-serif'] = ['SimHei']

#方法一plt
plt.rcParams['font.sans-serif'] = ['SimHei']

plt.figure()
plt.title('全0图像')
plt.imshow(image_0, cmap = 'gray')

plt.figure()
plt.title('二值黑白图像')
plt.imshow(image_01, cmap = 'gray')

plt.figure()
plt.title('全1图像')
plt.imshow(image_1, cmap = 'gray')

plt.figure()
plt.title('全255图像')
plt.imshow(image_255, cmap = 'gray')

#方法二opencv

cv2.imshow('0',image_0)

cv2.imshow('01',image_01)

cv2.imshow('1',image_1)

cv2.imshow('255',image_255)

img

这是matplotlib显示结果,无法正常显示。

img

这是opencv显示结果,能够正常显示。

  • 写回答

1条回答 默认 最新

  • cungudafa 嵌入式领域活跃答主 2021-11-10 14:36
    关注

    opencv中读取设置图像默认为GBR格式
    plt格式为通常认为的RGB格式

    转换方法:

    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    
    path="images/test.png"
    img = cv2.imread(path)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    
    plt.figure(figsize=(10,10))
    plt.subplot(1,2,1) 
    plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))#BGR转RGB
    plt.xlabel(u'hand.png')
    plt.subplot(1,2,2)
    plt.imshow(cv2.cvtColor(gray, cv2.COLOR_BGR2RGB))
    plt.xlabel(u'ret.png')
    plt.show()
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月10日

悬赏问题

  • ¥100 用数字代替ip主机号断与旋转链接号段
  • ¥20 学校内手机热点不能使用
  • ¥15 qwen模型微调训练时grad_norm为0.0或为nan
  • ¥15 若依- Spring cloud-plus集成阿里云schedulerX再控制台应用管理找不到实例
  • ¥15 用vs2022 fortran调试只无法查看数组的值,显示发生未指定的错误
  • ¥50 SGD Gateway 是否可以与 SGD Server 装在一台服务器上?
  • ¥15 gge梦幻西游的地图制作
  • ¥15 对计算机的学习没有方向
  • ¥15 用VBA抓取淘宝的发票号码和下载发票pdf遇到的问题
  • ¥20 java excel导出有什么解决方案