微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在python上显示所有8位图像

如何解决如何在python上显示所有8位图像

首先,对不起我的英语不好,我是说西班牙语的人,所以我会尽力解释我的问题。

我有一个标准化的([0-255])dicom图像,我想显示8张图像,但是改变位深度,我的意思是:1bit图像,2bit图像,3bit图像等。我的代码只是打开并规范化图像,因为我不知道应该怎么做才能获得所需的图像,也许将所有像素值都转换为二进制值,但是我并不是很了解,我开始学习数字图像处理。这是我的代码

import numpy as np
import matplotlib.pyplot as plt
import pydicom as dicom


IM = r"C:\Users\Nico\Desktop\tarea2\MR-cerebro-ANON\IM.dcm"
data = dicom.read_file(IM)
imagen = data.pixel_array[200]
img_norm = []
for pixel in imagen:
    img_norm.append((pixel/np.amax(imagen)*255))
plt.imshow(img_norm,cmap='bone'),plt.axis('off')
plt.title('Imagen normalizada')
plt.show()

更新:

我终于找到了想要的东西,所以我会把我的代码在这里,以防有人想要改进它,因为我知道它可能没有被如此优化,但是我是一个入门者,所以这就是我所做的任何人都想对其进行优化,可以随时进行。另外,也许有了这个结果,我的问题现在已经很清楚了,它可以在所有8位上工作,只需修改第二个“ for”上的int函数即可。这些是我得到的normalized Image1 bit image图片6 bits image

bin1 = []
bin11 = []
for i in c:
    for j in i:
        bin1.append('00000000'+bin(j)[2::])
for b in bin1:   
    bin11.append(int(b[-1:],2))    
plt.imshow(np.reshape(bin22,(480,480)),cmap='gray')
plt.title('Imagen de 1 bits')
plt.show()

解决方法

更新(答案):

我终于找到了想要的东西,所以我会把我的代码放在这里,以防有人想要改进它,因为我知道它可能没有被如此优化,但是我是一个入门者,所以这就是我所做的任何人都想对其进行优化,可以随时进行。另外,也许有了这个结果,我的问题现在已经很清楚了,它只需要修改第二个“ for”上的int函数,就可以与所有8位一起使用。 ,1 bit image5 bits image

bin1 = []
bin11 = []
for i in c:
    for j in i:
        bin1.append('00000000'+bin(j)[2::])
for b in bin1:   
    bin11.append(int(b[-1:],2))    
plt.imshow(np.reshape(bin22,(480,480)),cmap='gray')
plt.title('Imagen de 1 bits')
plt.show()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。