实验目的与要求
|
- 配置本地VS Code Jupyter开发环境
- 要求1:完成VS Code安装,在VS Code中完成Jupyter安装,配置好本地Python环境
- 要求2:安装与医学图像处理与分析相关的第三方库:
!pip install matplotlib --upgrade
!pip install numpy --upgrade
!pip install PIL --upgrade
!pip install pydicom
- 要求3:创建notebook,并运行以下代码验证开发环境:
#在ipynob里显示图像
%matplotlib inline
import numpy as np
from PIL import Image
from matplotlib import pyplot as plt
#产生图像数据
d=[i for i in range(256)]*100
#转化为字节串
imgd=bytes(d)
#根据图像数据,生成宽256高100的渐变灰度图像
img=Image.frombytes('L',(256,100),imgd)
print(f'图像的格式是:{img.format},图像的类型是:{img.mode}, 图像的宽高是{img.size}')
imgar=np.array(img)
#关键坐标轴的显示
plt.axis(False)
#将数组显示为图像
plt.imshow(imgar,cmap='gray')
plt.show()
运行上述代码后显示以下图像:

- 要求4:分析上述代码,特别是与图像有关的像素值,图像的宽,高,以及图像的类型等
- AI Studio开发环境
1、菜单下的新件选项的,练习新建笔记本,新建终端,新建文本文件,新建python文件功能;
2、在AI Studio里新建一个images文件夹,上传图片到新建的images文件夹里。
- 要求3:创建notebook完成,安装内容1中要求2中列出的4个库,并完成内容1中要求3中验证开发环境的代码。
- 笔记本(Notebook)基本操作
- 要求1:笔记本中单元格的基本操作,新建,插入,删除,运行;
- 要求2:在笔记本里写不少于10行Python的代码并运行。
- 要求3:将VS Code中的笔记本上传到AI Studio,运行;将AI Studio中的笔记本下载到本地,并用VS Code 运行。
- 修改内容1中要求3内的代码,完成以下任务:
- 要求1:生成一幅纯黑色的图,生成一幅纯白色图
- 要求2:生成一幅具有灰阶的图像

- 要求3:调节2中的间隔分析人的视觉能分辨多少个灰阶
- 要求4:生成横条纹的图像

|
实验过程
|
- d = [0 for i in range(256)] * 100
- img = bytes(d)
- img = Image.frombytes('L', (256,100), img)
- imgar = np.array(img)
- plt.axis(False)
- plt.imshow(imgar, vmin = 0, vmax = 255,cmap = 'gray')
- plt.savefig('Black.png')
- plt.show()
- d = [255 for i in range(256)] * 100
- img = bytes(d)
- img = Image.frombytes('L', (256,100), img)
- imgar = np.array(img)
- # plt.axis(False)
- plt.imshow(imgar, vmin = 0, vmax = 255,cmap = 'gray')
- plt.savefig('white.png')
- plt.show()
要求2:生成一幅具有灰阶的图像
- d = [i // 16 * 16 for i in range(256) ] * 100
- img = bytes(d)
- img = Image.frombytes('L', (256,100), img)
- imgar = np.array(img)
- plt.axis(False)
- plt.imshow(imgar, vmin = 0, vmax = 255,cmap = 'gray')
- plt.savefig('gray.png')
- plt.show()

- 要求3:调节2中的间隔分析人的视觉能分辨多少个灰阶
- def figureGray(n):
- d = [i // n * n for i in range(256) ] * 100
- img = bytes(d)
- img = Image.frombytes('L', (256,100), img)
- imgar = np.array(img)
- plt.axis(False)
- plt.imshow(imgar, vmin = 0, vmax = 255,cmap = 'gray')
- plt.savefig(f'{n} - 灰阶图像')
- plt.show()
Main函数:
- for i in range(1,30):
- figureGray(i)
              
- def figureGray(n):
- d = [i // n * n for i in range(256) ] * 100
- img = bytes(d)
- img = Image.frombytes('L', (256,100), img)
- imgar = np.array(img)
- imgar = imgar.T
- plt.axis(False)
- plt.imshow(imgar, vmin = 0, vmax = 255,cmap = 'gray')
- plt.savefig('横向灰阶图像.png')
- plt.show()
主函数:
- figureGray(16)

|