前 言

从2017年入坑人工智能领域开始,就被这一领域深深的所吸引,虽然到现在已经踩了不少坑,但总算有了不少的收获,深感不虚此行,借助强大的python让我快速的向着这一领域靠近,现在流行比较广的人工智能应用,比如:图像识别,语音识别,文本情感分析,人体行为分析等等。在金融、安全、智能推荐等等,凡是我们能想到的领域,都可以安插人工智能的应用,对推进万物互联、万物互通的未来智能具有深刻影响,可以说是大势所趋。

由于人类语言的千变万化,和对语言分析应用的单一,导致在语音、语义方面远不如图像分析应用的广泛。OpenCV是一个专门对图像进行处理的库,在此后的学习中,我们会深刻认识到它的强大。借助强大的互联网,集万众之所长,完成学习任务。

图像的读取、复制、显示、保存

(一)认识图像、读取图像

所谓的图像就是一个数组,所有对图像的处理就是对数字的处理

# 导入包
import cv2
import numpy as np
img = cv2.imread('rose.jpg')
print(img)
print(np.shape(img))

输出结果为:

[[[ 65 134 107][ 65 134 107][ 65 134 107]..., [ 33  90  69][ 33  90  69][ 31  90  69]][[ 64 133 106][ 64 133 106][ 64 133 106]..., [ 33  90  69][ 33  90  69][ 31  90  69]][[ 64 132 107][ 64 132 107][ 63 131 106]..., [ 33  90  69][ 33  90  69][ 31  90  69]]..., [[  1  75  49][  2  76  50][  0  77  50]..., [ 24  62  66][ 25  63  67][ 27  65  69]][[  1  75  49][  2  76  50][  0  77  50]..., [ 19  57  61][ 21  59  63][ 22  60  64]][[  1  75  49][  2  76  50][  0  77  50]..., [ 17  55  59][ 19  57  61][ 20  58  62]]]
(972, 1024, 3)

(二)显示图像

接下来我们来让读取的图像显示出来,刚才的图片太大了,我将图片弄小了一些

# 读取图片
img = cv2.imread('rose1.jpg')
# 先创建一个窗口
cv2.namedWindow('Image')
# 在窗口中显示图像
cv2.imshow('Image', img)
# 最后还要写一句代码,这样就可以使窗口始终保持住
cv2.waitKey(0)

运行结果为:

在读取图片中,imread(‘图片地址’,‘模式参数’)函数可以来控制所读取图片的模式。

模式参数:

0:读入的为灰度图像(即使读入的为彩色图像也将转化为灰度图像)

1:读入的为彩色图像(默认)

img = cv2.imread('rose1.jpg', 0)

cv2.destroyAllWindows()

最后别忘了释放窗口,养成良好习惯。

(三)复制图像

img1 = img.copy()

(四)保存图像

保存图像也非常简单

cv2.imwrite('rose_copy.jpg', img1)

第一个参数是保存图像的地址以及文件的名字,第二个参数是所要保存的图像数组。

其实它还有第三个参数,针对特定的图像格式,对于JPEG,其表示的是图片的quality,用0-100的整数表示,默认为95。当然,你如果把参数设置的超过100也不会出错,但到100已经达到图片本身的最高质量了。cv2.IMWRITE_JPEG_QUALITY的类型为int类型,符合图像数组为整数的要求,不用再更改类型。

cv2.imwrite('rose_copy1.jpg', img1, [cv2.IMWRITE_JPEG_QUALITY, 2])

对于PNG,第三个参数表示的是压缩级别。cv2.IMWRITE_PNG_COMPRESSION,从0到9,压缩级别越高,图像尺寸越小。默认级别为3.

cv2.imwrite("rose1_test.png", img, [cv2.IMWRITE_PNG_COMPRESSION, 0])
cv2.imwrite("rose2_test.png", img, [cv2.IMWRITE_PNG_COMPRESSION, 9])

其实,还有很多有趣的操作,就不介绍了,需要用的时候在进行学习,知道这两个比较常用的。

python+OpenCV图像处理(一)读取、复制、显示、保存相关推荐

  1. Python+Opencv图像处理新手入门教程(四):视频内容的读取与导出

    一步一步来吧 上一节: Python+Opencv图像处理新手入门教程(三):阈值与二值化 1.Intro 今天这节我们主要看怎么利用opencv读取并处理视频中的内容. 2.VideoCapture ...

  2. Python+OpenCV图像处理(一篇全)

    参考:1.网易云课堂 Python+OpenCV图像处理 - 网易云课堂 2.[在水一方xym的博客]业精于勤荒于嬉,行成于思毁于随 - CSDN博客 https://blog.csdn.net/za ...

  3. python+opencv图像处理之边缘检测车道线识别

    python+opencv图像处理之边缘检测车道线识别 1.自行安装python和opencv 2.导入我们要使用的相关库 import cv2 from matplotlib import pypl ...

  4. python+opencv图像处理之七:直方图均衡化

    python+opencv图像处理之七:直方图均衡化 目录 python+opencv图像处理之七:直方图均衡化 一.直方图均衡化 二.直方图绘制 三.直方图均衡化 四.有限对比适应性直方图均衡化 一 ...

  5. java基于OpenCv图像处理_读取_保存图片

    java基于openCv图像处理_读取_保存图片 本文使用javaCV封装后的OpenCv <dependency><groupId>org.bytedeco</grou ...

  6. Python OpenCV图像处理 理论 代码

    python opencv图像处理 GitHub - LeBron-Jian/ComputerVisionPractice OpenCV计算机视觉学习 & 代码 OpenCV计算机视觉学习(1 ...

  7. Python+Opencv图像处理新手入门教程(三):阈值与二值化

    一步一步来吧 上一节: Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图 1.Intro 今天这节我们主要研究利用阈值处理图像.例如对于输入图像: 如何做一 ...

  8. Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图

    一步一步来吧 上一节:Python+Opencv图像处理新手入门教程(一):介绍,安装与起步 1.什么是图像 对于计算机而言,图像的本质是一个由像素点构成的矩阵. 例如我们用肉眼很容易分辨一辆汽车的后 ...

  9. pandas读取csv写入mysql_使用python的pandas库读取csv文件保存至mysql数据库

    第一:pandas.read_csv读取本地csv文件为数据框形式 data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.cs ...

  10. Python+OpenCV图像处理(五)——图像阈值和二值化

    系列文章 Python+OpenCV图像处理(一)--OpenCV框架与图像插值算法 Python+OpenCV图像处理(二)--几何变换 Python+OpenCV图像处理(三)--彩色空间互换 P ...

最新文章

  1. php.ini安全配置详细解释
  2. Java 最高均薪 19015 元! 9 月程序员工资出炉,你拖后腿了吗?
  3. 如何选择相机的10大要素!
  4. border和图片之间有缝隙_院子里现浇水泥板,每块之间留7公分的缝,铺出来的效果漂亮大气...
  5. 电脑下边的任务栏不见了_正确的Windows任务栏设置,为你的操作带来便利,一起学习...
  6. Java设计模式应用——工厂模式
  7. kubuntu18.04 重装显卡驱动后无法进入桌面
  8. linux机顶盒怎么破解wifi,折腾一下数字电视的机顶盒
  9. “确定“和“取消“摆放顺序
  10. 第二次作业:微博案例分析
  11. clickhouse-backup数据备份
  12. Go基础:路径、文件名和包名的关系
  13. C++运算符重载 ++,--,+,-,+=,-=,输出输入运算符
  14. 报错:Ncat: bind to :::8888: Address already in use. QUITTING
  15. html导航栏怎么加点,点靓网页的10种导航菜单设计
  16. 固高jog运动和点位运动
  17. 线性代数(三十四) : 广义特征向量
  18. java HashMap练习题1
  19. fiddler移动端抓包wifi不可上网(配置都正确,防火墙已关闭)
  20. itoa 头文件 linux,Linux中的itoa功能在哪里?

热门文章

  1. mysql多种join_MySQL的几种Join
  2. keepass2Android密码,Keepass2Android密码管理(快速解锁密码)
  3. python修改mac地址_python利用_winreg模块制作MAC地址修改工具
  4. 手机电脑的芯片主要是由_全体起立!苹果自研电脑芯片登场,iOS迎大更新…WWDC20精彩远不止这些...
  5. 高效利用无标注数据:自监督学习简述
  6. 【小马哥】Spring Boot系列讲座
  7. 以史为鉴 | 为什么要将「知识图谱」追溯到1956年?
  8. Android自定义控件入门实践之雷达扫描控件
  9. 事理图谱:一种纯学术需求、无法落地、漏洞百出的新技术或新概念?
  10. 人工智能,装在罐子里