Pillow和OpenCV转numpy数组
Pillow转numpy数组
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt# PLT默认读取图片数据格式:(高,宽,通道(R,G,B))
im = Image.open('test.jpg')
print(im.size)# 转numpy.ndarray格式
im_pillow= np.asarray(im)
print(im_pillow.shape)# 赋值红色通道
im_pillow_c1_3ch = np.zeros(im_pillow.shape)
im_pillow_c1_3ch[:,:,0] = im_pillow[:,:,0]# 赋值绿色通道
im_pillow_c2_3ch = np.zeros(im_pillow.shape)
im_pillow_c2_3ch[:,:,1] = im_pillow[:,:,1]# 赋值蓝色通道
im_pillow_c3_3ch = np.zeros(im_pillow.shape)
im_pillow_c3_3ch[:,:,2] = im_pillow[:,:,2]# 展示
plt.subplot(2,2,1)
plt.title("Origin Image")
plt.imshow(im_pillow)
plt.axis('off')plt.subplot(2,2,2)
plt.title("Red Channel")
plt.imshow(im_pillow_c1_3ch.astype(np.uint8))
plt.axis('off')plt.subplot(2,2,3)
plt.title("Green Channel")
plt.imshow(im_pillow_c2_3ch.astype(np.uint8))
plt.axis('off')plt.subplot(2,2,4)
plt.title("Blue Channel")
plt.imshow(im_pillow_c3_3ch.astype(np.uint8))
plt.axis('off')
OpenCV图片
OpenCV读入后顺序是BGR。
import cv2
im_cv2 = cv2.imread('test.jpg')# opencv默认读取图片的数据为: (高,宽,通道(B,G,R))
im_cv2 = im_cv2[:,:,(2,1,0)] # 改变图像通道顺序为:RGBprint(type(im_cv2))
print(im_cv2.shape)# 赋值红色通道
im_cv2_c1_3ch = np.zeros(im_cv2.shape)
im_cv2_c1_3ch[:,:,0] = im_cv2[:,:,0]# 赋值绿色通道
im_cv2_c2_3ch = np.zeros(im_cv2.shape)
im_cv2_c2_3ch[:,:,1] = im_cv2[:,:,1]# 赋值蓝色通道
im_cv2_c3_3ch = np.zeros(im_cv2.shape)
im_cv2_c3_3ch[:,:,2] = im_cv2[:,:,2]# 展示
plt.subplot(2,2,1)
plt.title("Origin Image")
plt.imshow(im_cv2)
plt.axis('off')plt.subplot(2,2,2)
plt.title("Red Channel")
plt.imshow(im_cv2_c1_3ch.astype(np.uint8))
plt.axis('off')plt.subplot(2,2,3)
plt.title("Green Channel")
plt.imshow(im_cv2_c2_3ch.astype(np.uint8))
plt.axis('off')plt.subplot(2,2,4)
plt.title("Blue Channel")
plt.imshow(im_cv2_c3_3ch.astype(np.uint8))
plt.axis('off')
Pillow和OpenCV转numpy数组相关推荐
- OpenCV—Python Numpy数组(像素点)操作
一.遍历图片三个通道像素点,并修改相应的RGB def access_pixels(image):print(image.shape)height = image.shape[0]width = im ...
- python 读取图片成为一维数组_python+opencv 图像的数组和矩阵操作
在调用opencv的imread函数读取图像时,我们得到的其实是一个类型为numpy.ndarray的n维数组.这个数组的维度是[height,width,3],它是由每个像素的RGB通道的灰度值组成 ...
- 34.35.热图(heatmap)、创建带注释的热图、使用辅助函数的代码样式、图像显示、图像插值、将图像数据导入Numpy数组、将numpy数组绘制为图像
34.热图(heatmap) 34.1.创建带注释的热图 34.2.使用辅助函数的代码样式 35.图像显示 35.1.图像插值 35.2.将图像数据导入Numpy数组 35.3.将numpy数组绘制为 ...
- 将Numpy数组保存为图像
有一个Numpy数组类型的矩阵,如何将它作为图像写入磁盘?任何格式的图像都行(PNG,JPEG,BMP ...). 最佳解决办法 可以使用scipy.misc,代码如下: import scipy.m ...
- numpy数组和图片互转
一.numpy array的存储和加载: load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中. save ...
- Python图片裁剪的两种方式——Pillow和OpenCV
本文参考Python图片裁剪的两种方式--Pillow和OpenCV并进行了一些更新 感谢作者:hfutdog 在这篇文章里我们聊一下Python实现图片裁剪的两种方式,一种利用了Pillow,还有一 ...
- python 读取 Raw文件 生成 Numpy 数组
一般情况下,有python的三方库的软件,可以读RGB二进制的Raw数据,生成Numpy数据.比如说OpenCV之类的.但是,我们也可以使用python的裸代码,得到Numpy. 知识点: numpy ...
- NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...
- python slice是共享内存吗_在共享内存中使用numpy数组进行多处理
在共享内存中使用numpy数组进行多处理 我希望在共享内存中使用numpy数组,以便与多处理模块一起使用.困难之处在于它像一个numpy数组一样使用,而不仅仅是作为一个ctype数组使用.from m ...
- 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析
使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析 1. 效果图 2. 原理 3. 源码 3.1 直方图3种计算方法和2种绘制方法 3.2 Mask遮罩图像直方图 参考 这篇博客将 ...
最新文章
- GPT3后可考虑的方向-知识推理与决策任务及多模态的信息处理
- linux简单目录,Linux下各目录简单整理
- numpy使用[]语法索引二维numpy数组中指定指定列之后所有数据列的数值内容(accessing columns in numpy array after specifc column)
- 你可能不知道的小程序
- HDOJ HDU 2080 夹角有多大II ACM 2080 IN HDU
- python小程序-10个Python练手小程序,学习python的很好的资料
- Windows Phone 7 Image Controller: Zoom In, Zoom Out, and Rotate (WP 7 图像控制器:放大,缩小,旋转)...
- Spring REST
- Java StringBuilder subSequence()方法与示例
- 高斯混合模型聚类_GMM: Gaussian Mixed Model(高斯混合模型)
- python画害羞的表情_用Python把你的朋友变成表情包
- MyEclipse中防止代码格式化时出现换行
- Jpcap包的安装与配置
- 信度spss怎么做_SPSS进行问卷量表信度检验(详细操作过程及结果分析)
- 董明珠这一年:格力造芯与银隆困局
- info There appears to be trouble with your network connection. Retrying
- python兔子生兔子
- PAT 1157 Anniversary
- (附源码)nodejs+mysql+node基于vue框架的游戏商城设计及开发 -《夜幕》毕业设计262127
- RFC4385:PWE3 Control Word for Use over an MPLS PSN读书笔记