Opencv与Pillow图像格式转换以及转为numpy数组

4 篇文章 2 订阅
1 篇文章 0 订阅

首先

PIL.Image模块有函数Image.fromarray()函数
cv2有cv2.cvtColor()函数
numpy有numpy.asarray()函数

值得注意的是cv2用的是BGR,PIL用的是RGB
# -*- coding=utf-8 -*-
import os
import cv2
from PIL import Image
'''
opencv中图片格式为BGR
pil中为RGB,需要转换一下
'''
import numpy as np
def numpy_to_cv():
    image = np.zeros((300, 300, 1), dtype=np.uint8)
    cv2.rectangle(image, (10, 10), (100, 100), (255, 255, 255), 10)
    cv2.imshow('mask',image)
    cv2.waitKey(0)
def numpy_to_PIL():
    image = np.zeros((300, 300, 3), dtype=np.uint8)
    image=Image.fromarray(image)
    image.show()
def cv2_show():
    '''opencv显示图片'''
    image=cv2.imread('lena.png')
    cv2.imshow('lena',image)
    cv2.waitKey()
def PIL_show():
    '''PIL显示图片'''
    image=Image.open('lena.png')
    image.show()

# cv2_show()
# PIL_show()
def cv2_to_PIL():
    image=cv2.imread('lena.png')
    image=Image.fromarray(cv2.cvtColor(image,cv2.COLOR_BGR2RGB))
    image.show()
def PIL_to_cv2():
    image=Image.open('lena.png')
    image=cv2.cvtColor(np.asarray(image),cv2.COLOR_RGB2BGR)
    cv2.imshow('lena',image)
    cv2.waitKey()
# cv2_to_PIL()
# PIL_to_cv2()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值