点赞再看,养成习惯!点赞再看,养成习惯!点赞再看,养成习惯!opencv-python库基础操作
0.安装opencv-python
pip install opencv-python
进行下载并安装
不过在python中导入opencv库的时候需要
"import cv2"来进行导入

下面用一只非常经典的猫咪开始练习使用opencv

1.首先导包

import cv2 #opencv读取的格式是BGR,与一般的RGB不同
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
#这样子就不需要plt.show()

2.读取图像数据

picture_path = "cat.jpg"
img = cv2.imread(picture_path)
看一下shape(可以发现是3通道的)
img.shape

img.size(用来查看图像总的像素有多少个)

3.将图片展示出来

cv2.imshow("image",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

其实也可以使用

import matplotlib.pyplot as plt
plt.imshow(img)

来对图片进行展示
但,opencv读取的格式是BGR,与一般的RGB不同,直接读会长这样子:(需要opencv进行RGB的转换)

4.下面用函数进行“图像展示”的封装

def cv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWindows()

5.转化为灰度图:

img = cv2.imread(picture_path, cv2.IMREAD_GRAYSCALE)
cv_show("img",img)

6.图像的保存

cv2.imwrite("mycat.png" , img )

7.截取部分图像数据

img = cv2.imread("cat.jpg")
cat = img[0:200, 0:300]
cv_show("cat" , cat)

8. 颜色通道提取

#注意顺序为BGR
b,g,r = cv2.split(img)

9.颜色通道合并

img = cv2.merge((b,g,r))

10.只保留单个颜色通道

#只保留R
cur_img = img.copy()#将B,G通道设置为0
cur_img[:,:,0] = 0
cur_img[:,:,1] = 0cv_show("R" , cur_img)

(纯红看着有点吓人!)

#只保留G
cur_img = img.copy()#将B,R通道设置为0
cur_img[:,:,0] = 0
cur_img[:,:,2] = 0cv_show("g" , cur_img)

#只保留B
cur_img = img.copy()#将R,G通道设置为0
cur_img[:,:,1] = 0
cur_img[:,:,2] = 0cv_show("B" , cur_img)

11.数值计算
因为读取进来之后就直接做np.array格式处理了,所以部分处理方式可以借鉴np.array

img_cat = cv2.imread("cat.jpg")
cv_show("123" , img_cat + 10)

img_cat = cv2.imread("cat.jpg")
img_cat2 = img_cat + 10
img_cat2 + img_cat

(因为我们的像素值范围是[0,255],所以如果相加>255,则会做%255处理)

12. 图像融合

img_cup = cv2.imread("1_51.jpg")

这个图片长这样:

如果直接相加:

img_dog  + img_cat

则报错

需要先将某一张图片进行resize处理

img_dog = cv2.resize(img_dog , (640,391))#注意这里是x,y,而shape那边是y,x
img_dog.shape

同时对于这个resize函数,还可以使用缩小放大功能

res = cv2.resize(img_cat , (0,0) , fx = 2, fy = 2)

#这样子就是放大两倍

用addWeighted函数就可以将二者融合在一起!

res1 = cv2.addWeighted(img_cat,0.4,img_dog,0.6,20)

看起来还真是有点魔幻!

基础操作先到这里,接下来会上一些更加高级有用的操作!

cv2 imread函数 python_opencv-python库基础操作(一)相关推荐

  1. opencv resize_opencv-python库基础操作(一)

    点赞再看,养成习惯!点赞再看,养成习惯!点赞再看,养成习惯!opencv-python库基础操作 0.安装opencv-python pip install opencv-python 进行下载并安装 ...

  2. 一次性掌握所有 Python 画图基础操作

    pythonpythonpython 画图介绍 嘿!彩蛋!感觉有帮助就三连呗! 本文以实用为第一目标,保证读者在看完此文之后可以迅速上手 pythonpythonpython 画图,掌握所有画图的基本 ...

  3. Python语音基础操作--10.1基于动态时间规整(DTW)的孤立字语音识别试验

    <语音信号处理试验教程>(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的.使用CSDN博客查看帮助文件 ...

  4. Python语音基础操作--4.3共振峰估计

    <语音信号处理试验教程>(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的.使用CSDN博客查看帮助文件 ...

  5. Python语音基础操作--6.3ADPCM编码

    <语音信号处理试验教程>(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的.使用CSDN博客查看帮助文件 ...

  6. Python语音基础操作--2.3声强与响度

    <语音信号处理试验教程>(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的.使用CSDN博客查看帮助文件 ...

  7. Python语音基础操作--10.2隐马尔科夫模型的孤立字识别

    <语音信号处理试验教程>(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的.使用CSDN博客查看帮助文件 ...

  8. Python语音基础操作--3.2短时时域分析

    <语音信号处理试验教程>(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的.使用CSDN博客查看帮助文件 ...

  9. Python语音基础操作--11.2基于GMM的说话人识别模型

    <语音信号处理试验教程>(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的.使用CSDN博客查看帮助文件 ...

最新文章

  1. 数学战神app(小学生四则运算app)进度
  2. Spark源码剖析 - SparkContext的初始化(八)_初始化管理器BlockManager
  3. java已知一个二叉树_Day58:对称的二叉树
  4. 北斗导航 | 卫星导航基础知识(卫星导航时间系统)
  5. 工业机器人码垛教学实施_工业码垛机器人存在问题与解决对策
  6. 如何在内存序列化中使用Java深克隆对象
  7. java界面 文件选择器_掌握java技术 必备java工具应用知识
  8. 流式数据分析_流式大数据分析
  9. vb checkbox选中和不选中_UE4 4.23 RetainerBox 选中框位置不正确
  10. livecharts中仪表盘_Vue中使用Echarts仪表盘展示实时数据的实现
  11. sql游标 while_用SQL Server中的排名函数替换SQL While循环和游标,以提高查询性能
  12. 51nod 1243 排船的问题(二分)
  13. MYSQL数据丢失讨论
  14. 微软代码审查工具_微软代码审查的工作方式
  15. 第09章节-Python3.5-Django目录详解 8
  16. java面试英语自我介绍_java英语面试自我介绍
  17. Linux服务部署-3构建nfs时间服务器
  18. c语言 fgetc函数,C 库函数 – fgetc()
  19. centos7下MySQL的安装(通用二进制安装)
  20. 算法学习【1】三个空汽水瓶可以换一瓶汽水

热门文章

  1. jquery 插件 国外
  2. EMCA创建em资料库时报错
  3. 层次化防御保证企业门户网站安全
  4. webkit的编译(r76498)
  5. Symfony2Book12:HTTP 缓存
  6. c语言模拟计算机程序阶乘,辽宁省计算机二级(C语言)模拟试卷B(无答案).doc
  7. 【写作技巧】毕业论文写作意义
  8. sequelize怎么看插入的数据成功不成功_Google Sheet使用分享:柱形图断层图 异常数据和其他数据和谐共处之道...
  9. 50欧姆线设计 高频pcb_高频电路布线的应对方法有哪些?
  10. 计算机专业职称入深户,最近深圳很火的职称入户,到底要选什么职称?