PIL2Numpy:通过PIL和numpy数据格式互相转换来调用PIL/cv2

版权声明:本文为博主原创文章,若有转载请务必注明转载地址。 https://blog.csdn.net/u011534057/article/details/77529592

通过将PIL的数据结构和CV2所支持的numpy互相转换,可以及其方面的调用一些双方都没有的库。


举个例子,PIL下方便的锐化功能实现:

http://pillow.readthedocs.io/en/3.4.x/reference/ImageEnhance.html#PIL.ImageEnhance.Sharpness

以及cv2下方便的sobel..feature extration器件:

https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_contours/py_contour_features/py_contour_features.html


实现方式:

1) 基础PIL操作

# !/usr/bin/python # -*- coding:utf-8 -*- 

from PIL import Image 

# 加载图像(路径必须双\\) 

pil_img = Image.open('D:\\1.tif') 

# 显示 

pil_img.show() 

# 另存为 outfile = "2"+".jpg" 

pil_img.save(outfile)


2)PIL2Numpy

# !/usr/bin/python # -*- coding:utf-8 -*- 

from PIL import Image from numpy import * 

# 加载图像(路径必须双\\) 

pil_img = Image.open('D:\\1.tif') 

# 转化为数组 

img = array(pil_img) 

# 获取图像参数 

height,width = img.shape[0:2] 

# 访问像素 

value = img[i,j,k] 

#[行,列,channel]


3)PIL2Numpy2CV2

Python 2.7中PIL.Image转换为OpenCV支持的Image格式 

pil_image = PIL.Image.open('image.jpg') 

cv_image = cv2.cvtColor(numpy.asarray(pil_image), cv2.COLOR_RGB2BGR)


4)Numpy2PIL

pil_im2 = Image.fromarray(uint8(img))




阅读更多

没有更多推荐了,返回首页