医学图像读取学习笔记

跟随国外生物医学图像处理大佬学习笔 

017-医学图像读取

4个常用的库

PIL
matplotlib
skimage
openCV
读取TIFF
读取czi
循环读取整个文件夹的路径和文件
####PIL#####
from PIL import Image 
import numpy as np   #将图片转换成numpy格式

# Read image 
img = Image.open("images/test_image.jpg") #Not a numpy array
print(type(img))

# Output Images 

img.show() 

# prints format of image 
print(img.format) 
  
# prints mode of image 
print(img.mode) 

#PIL 不是默认numpy数组,但可以将PIL图像转换成numpy数组. 
img1 = np.asarray(img)
print(type(img1))
######### Using Matplotlib #########

import matplotlib.image as mpimg 
import matplotlib.pyplot as plt 

img = mpimg.imread("images/test_image.jpg")  #这是个numpy数组
print(type(img))
print(img)

print(img.shape)

plt.imshow(img)
plt.colorbar()   #在图像旁边放一个颜色条 
######Using scikit image ############
###### pip install scikit-image

from skimage import io, img_as_float, img_as_ubyte
import numpy as np
import matplotlib.pyplot as plt 


image = img_as_float(io.imread("images/test_image.jpg"))


#image2 = io.imread("images/test_image.jpg").astype(np.float)
#avoid using astype as it violates assumptions about dtype range.
#for example float should range from 0 to 1 (or -1 to 1) but if you use 
#astype to convert to float, the values do not lie between 0 and 1. 
#print(image.shape)
#plt.imshow(img)


print(image)

#print(image2)
#image8byte = img_as_ubyte(image)
#print(image8byte)

#End of Skimage


######### Using openCV ######### 
######pip install opencv-python

import cv2

grey_img = cv2.imread("images/test_image.jpg", 0)
color_img = cv2.imread("images/test_image.jpg", 1)

#images opened using cv2 are numpy arrays
print(type(grey_img)) 
print(type(color_img)) 

# Use the function cv2.imshow() to display an image in a window. 
# First argument is the window name which is a string. second argument is our image. 

cv2.imshow("pic", grey_img)
cv2.imshow("color pic", color_img)


cv2.waitKey(0)          

#销毁所有创建的Windows
cv2.destroyAllWindows() 

#OpenCV imread, imwrite和imshow都使用 BGR 顺序,而不是RGB顺序
#但是当你阅读图片时,不需要改变顺序
# cv2。我读,然后想显示它与cv2.imshow
#如果你使用matplotlib,它使用RGB。

import matplotlib.pyplot as plt
plt.imshow(color_img)  

#OpenCV将RGB图像表示为多维NumPy数组,但表示为BGR.

#我们可以将图像从BGR转换为RGB
plt.imshow(cv2.cvtColor(color_img, cv2.COLOR_BGR2RGB))

#我们也可以改变颜色空间从RGB到HSV.
plt.imshow(cv2.cvtColor(color_img, cv2.COLOR_BGR2HSV))
###########Reading OME-TIFF using apeer_ometiff_library ###########
# pip install apeer-ometiff-library first 
#此为读取TIFF文件
from apeer_ometiff_library import io  #使用peer.com免费平台进行云图像处理

(pic2, omexml) = io.read_ometiff("images/test_image.ome.tif")  #展开图像和嵌入的xml元数据
print (pic2.shape)   #验证矩阵的形状
print(pic2)

print(omexml)
####################################################################################
#读取CZI 文件
# pip install czifile 
# to import the package you need to use import czifile
# https://pypi.org/project/czifile/

import czifile

img = czifile.imread('images/test_image.czi')
print(img.shape)


import czifile
from skimage import io

img = czifile.imread('images/Osteosarcoma_01.czi')
print(img.shape)
img1=img[0, 0, :, :, :, 0]
print(img1.shape)
img2=img1[2,:,:]
io.imshow(img2)

######################################################################################
#从多个文件中读取图像
#glob模块查找所有路径名
#根据 Unix shell语言 使用的规则匹配指定的模式
#通配符匹配操作符。Glob返回包含完整路径的文件列表
#import the library opencv

import cv2
import glob

#select the path
path = "images/test_images/aeroplane/*.*"  #在glob中这里的*表示遍历当前文件,glob还是挺常用
for file in glob.glob(path):
    print(file)     #只要在这里停下来看看所有的文件名打印出来
    a= cv2.imread(file)  #现在,我们可以读取每个文件,因为我们有完整的路径
    print(a)  #打印每个文件的numpy数组

#let us look at each file
#    cv2.imshow('Original Image', a)
#    cv2.waitKey(0)
#    cv2.destroyAllWindows()
    
#处理每个图像-改变颜色从BGR到RGB.
    c = cv2.cvtColor(a, cv2.COLOR_BGR2RGB)
    cv2.imshow('Color image', c)
#wait for 1 second
    k = cv2.waitKey(0)
#destroy the window
    cv2.destroyAllWindows()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值