博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python之使用PIL实现cv2
阅读量:5961 次
发布时间:2019-06-19

本文共 1289 字,大约阅读时间需要 4 分钟。

有时候使用cv2需要安装opencv,但是opencv安装比较麻烦,因为需要编译过程。

所以,我们可以使用PIL对cv2的一些常用接口进行复现。

 这里我们实现了cv2的imread(), imwrite(), resize(), cvtColor() 共四个接口。

实现代码如下:

import PILfrom PIL import Imageimport numpy as npdef imread(filename):    img = np.array(Image.open(filename))    if len(np.shape(img)) == 3:        return img[:,:,::-1]    else:        return imgdef imwrite(filename, img):    if len(np.shape(img)) == 3:        img = Image.fromarray(img[:,:,::-1])    else:        img = Image.fromarray(img)    img.save(filename)def resize(img,size, interpolation = PIL.Image.LANCZOS):    # PIL.Image.NEAREST, PIL.Image.BILINEAR , PIL.Image.BICUBIC, PIL.Image.LANCZOS    if len(np.shape(img)) == 3:        return np.array(Image.fromarray(img[:,:,::-1]).resize(size,resample = interpolation))[:,:,::-1]    else:        assert len(np.shape(img)) == 2        return np.array(Image.fromarray(img).resize(size,resample = interpolation))def cvtColor(img, mode):    # mode: 'COLOR_BGR2GRAY', 'COLOR_GRAY2BGR'    if mode == 'COLOR_BGR2GRAY':        assert len(np.shape(img)) == 3        img = Image.fromarray(img[:,:,::-1])        return np.array(img.convert(mode = 'L'))    if mode == 'COLOR_GRAY2BGR':        assert len(np.shape(img)) == 2        return np.repeat(img[:, :, np.newaxis], 3, axis=2)            return None

 

转载地址:http://tfjax.baihongyu.com/

你可能感兴趣的文章
mysql 并行复制
查看>>
傲不可长,欲不可纵,乐不可极,志不可满——提高个人修养
查看>>
linux系统增加swap容量的方法
查看>>
远程推送
查看>>
后台调用gps
查看>>
HTML5标签的语义认知和理解(1)
查看>>
MySQL日志功能详解(2)
查看>>
HP LaserJet 305X 和 339X 系列一体机如何设置手动或自动接收传真?
查看>>
linux之权限之隐藏权限
查看>>
设计模式学习网址和书籍
查看>>
[李景山php]每天TP5-20170115|thinkphp5-Model.php-8
查看>>
前端seo注意事项!
查看>>
ConcurrentHashMap 线程安全
查看>>
Centos6.5 Python2.7+Supervisor 环境安装
查看>>
Exchange2010SP1删除特定主题邮件
查看>>
Supporting Python 3(支持python3)——语言区别和暂时解决方法
查看>>
Linux 下网络性能优化方法简析
查看>>
ejs教程
查看>>
查询某个命令需要用yum安装哪个包才有
查看>>
网络协议
查看>>