python CV2库
1.读入一张图片
2.显示图片
3.保存图片
4.灰度图和彩色图片相互转化
5.图像缩放
6.图像翻转
安装的时候是pip install opencv_python
但是在导包的时候是import cv2
注意:使用cv2库的时候,文件路径一定要全英文,不能有中文,一旦有中文就会有各种莫名其妙的错误
1.读入一张图片:cv2.imread(filepath,flags)
其中filepath表示图片的路径
flags表示要读入的是什么图片:
(1)cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道(或者直接写1)
(2)cv2.IMREAD_GRAYSCALE:读入灰度图片(或者直接写0)
读入一张rgb图像:
import cv2image1=cv2.imread(r"D:\1.jpg")print(image1.shape)
#(413, 295, 3)
读入一张灰度图:
import cv2image2=cv2.imread(r"D:\2.jpg",0)print(image2.shape)
#(783, 457)
2.显示图片:
(1)显示一张rgb图片:
import cv2image1=cv2.imread(r"D:\1.jpg")cv2.imshow("image1",image1)cv2.waitKey(0)
cv2.imshow("image1",image1) 第一个参数是窗口的名字,第二个参数是要显示的图像
cv2.waitKey(0)不调用这行代码的话,窗口会一闪而过,看不到显示的图片
(2)显示一张灰度图片:
import cv2image2=cv2.imread(r"D:\2.jpg",0)cv2.imshow("image2",image2)
cv2.waitKey(0)
3.保存图片:
import cv2image2=cv2.imread(r"D:\2.jpg",0)cv2.imwrite(r"D:\3.jpg",image2)
cv2.imwrite(r"D:\3.jpg",image2)第一个参数是要保存的路径,第二个参数是要保存哪张图片
4.灰度图和彩色图之间的互相转化
img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY) #灰度化:彩色图像转为灰度图像
img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB) #彩色化:灰度图像转为彩色图像
(1)rgb图转灰度图
import cv2image2=cv2.imread(r"D:\4.jpg",1)
print(image2.shape)
#这张图片本来是(1050, 1680, 3)image3=cv2.cvtColor(image2,cv2.COLOR_RGB2GRAY)print(image3.shape)#(1050, 1680)cv2.imshow("image3",image3)cv2.waitKey(0)
转化后变成下面这样:
cv2.COLOR_RGB2GRAY的底层实现:GRAY=0.3*R+0.59*G+0.11*B:
#GRAY=0.3*R+0.59*G+0.11*B
img_gray = img_rgb[:,:,0] * 0.11 + img_rgb[:,:,1] * 0.59 + img_rgb[:,:,2] * 0.3
img_gray = img_gray.astype(np.uint8)
#只有当数组类型为uint8时,opencv才会认为这是图片
(2)灰度图转彩色图
import cv2image2=cv2.imread(r"D:\2.jpg",0)
print(image2.shape)
#这张图片本来是(783, 457)image3=cv2.cvtColor(image2,cv2.COLOR_GRAY2RGB)print(image3.shape)#(783, 457,3)cv2.imshow("image3",image3)cv2.waitKey(0)
转化后变成下面这样:
可以看到:转化成的彩色图和原图还是一样的看起来像灰度图啊(但是通过打印图片的形状确实已经将单通道的图片转成了三通道的图了),这是因为OpenCV就是把灰度图复制了三遍,分别赋值给了R,G,B三个通道。
5.图像缩放:
cv2.resize(image, dsize) #图像缩放:(输入原始图像,图像调整大小为多少)
(1)彩色图片缩放
import cv2image2=cv2.imread(r"D:\1.jpg",1)
print(image2.shape)
#这张图片本来是(413, 295, 3)image3=cv2.resize(image2,(256,256))print(image3.shape)#(256,256,3)cv2.imshow("image3",image3)cv2.waitKey(0)
(2)灰度图片缩放
import cv2image2=cv2.imread(r"D:\1.jpg",1)
print(image2.shape)
#这张图片本来是(1050,1680)image3=cv2.resize(image2,(256,256))print(image3.shape)#(256, 256)cv2.imshow("image3",image3)cv2.waitKey(0)
6. 图像翻转
cv2.flip(img,flipcode)
flipcode =0:沿x轴翻转;
flipcode > 0:沿y轴翻转;
flipcode < 0:x,y轴同时翻转
import cv2image2=cv2.imread(r"D:\9.png",1)image3=cv2.flip(image2,0)
image4=cv2.flip(image2,1)
image5=cv2.flip(image2,-1)print(image3.shape)
cv2.imshow("image2",image2)
cv2.imshow("image3",image3)
cv2.imshow("image4",image4)
cv2.imshow("image5",image5)cv2.waitKey(0)
image2是原图,image3 沿x轴翻转就是上下翻转,image4沿y轴翻转就是左右翻转,image5沿x轴y轴翻转就是中心对称
python CV2库相关推荐
- CV:计算机视觉技术之图像基础知识—以python的cv2库来了解计算机视觉图像基础
CV:计算机视觉技术之图像基础知识-以python的cv2库来了解计算机视觉图像基础 目录 一.图像中的傅里叶变换 1.时域和频域 2.傅里叶变换 3.图像中的傅里叶变换
- CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)
CV:计算机视觉技术之图像基础知识(一)-以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边) 目录 一.图像中的傅里叶变换 1 ...
- python傅里叶变换库_python的numpy库和cv2库实现图像傅里叶变换
码字不易,如果对您有所帮助,记着点赞哦! 一. 图像傅里叶变换原理: 对二维图像进行傅里叶变换用如下公式进行: 图像长M,高N.F(u,v)表示频域图像,f(x,y)表示时域图像.u的范围为[0,M- ...
- python使用cv2库、下载opencv库
cv2库在opencv库内,因此需要下载opencv-python 1.打开windows命令行: win+R cmd 2.更新pip版本(不一定要): python -m pip install - ...
- Python第三方cv2库介绍
Python第三方cv2库介绍 CV2指的是OpenCV2(Open Source Computer Vision Library),是一个开源的库平台计算机视觉库.有很强大的图片处理功能,可实现图像 ...
- 用python中的cv2库打开摄像头
前提:确保pycharm中已经导入了cv2库 # -*- coding:utf8 -*-import cv2 as cv cap = cv.VideoCapture(0) # 打开摄像头while ( ...
- python安装cv2库
pip换源 1. 打开 appdata 文件夹,在资源管理器的地址栏输入 %appdata% 后回车: 2. 新建一个 pip 文件夹,在 pip 文件夹里面新建一个配置文件 pip.ini: 3. ...
- Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
Py之cv2:cv2库(OpenCV,opencv-python)的简介.安装.使用方法(常见函数.方法等)最强详细攻略 目录 关于OpenCV简介 OpenCV应用领域 1.计算机视觉领域方向 2. ...
- Anaconda 安装python第三方库的各类方法
Anaconda 安装python第三方库的各类方法(已更新离线安装) 之前的文章讲了有关anaconda的一些介绍和安装,第三方源也介绍了,本文介绍Anaconda安装python第三发库的各类方法 ...
最新文章
- 2010年12月blog汇总:敏捷个人
- 牛客华为机试第3题python
- 洛谷——P2678 跳石头
- 如何在大学和工作后让自己逐渐变强?
- 26、jdbc操作数据库(3)
- 11、mysql数据表中数据的查询(3)
- Git - git tag - 查看当前分支 tag 版本说明
- 为了探究不同光照处理_昭通2020名师助考? 丨掌握控制变量法轻松搞定中考物理实验探究题...
- 关于CefSharp在客户端运行报错的解决方案
- 敏捷.高效通过ACP.随笔
- time库:Python的时间时钟处理
- 论文阅读——Efficient and Robust Feature Selection via Joint L2,1-Norms Minimization
- 口语语汇单词篇(7)
- 2020年2月26日训练日记
- 职业年金是发放到养老退休金里面吗?
- 实体对齐 算法_[2017]Bootstrapping Entity Alignment with Knowledge Graph Embedding
- linux的文件和文件夹操作
- android更新软件,Android软件的自动更新
- 一线PPT制作理论——简洁电磁环境构建
- Python异常处理+追溯