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

前 言

       从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])

 

 

 

 

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python+OpenCV图像处理(二)图像像素的访问、通道的合并与分离

图像像素的访问、通道的合并与分离 (一)像素访问 在第一篇博客中,向大家介绍了,所谓的图像在计算机看来就是一个矩阵,对于RGB图像矩阵一共有三层,分别代表着RGB通道,矩阵中每一个数的大小代表着…

PNG转EPS格式

由于使用LaTeX需要将png格式转为eps格式,如果电脑装了tex软件,则转换方式很简单: 首先打开需要转换的图片所在文件夹。在地址栏输入cmd: 此时会弹出,命令窗口,然后输入bmeps -c Figure1.png Figure1.eps 即…

工业根基,莫让ICT喧宾夺主

来源:英诺维盛公司新工业革命正在得到广泛的关注,而ICT则获得了更高的曝光率和话语权。ICT是信息、通信和技术三个英文词首字母组合(Information Communications Technology)。显然,ICT是新工业革命必不可少的“新工业…

python+OpenCV图像处理(三)绘制简单的几何图形、显示文字

绘制简单的几何图形、显示文字 (一)绘制直线和矩形 img np.zeros([512, 512, 3]) # line函数用来画直线,第一个参数可以理解为画布矩阵, # 第二个参数pt1是直线的起始位置,第三个参数pt2是直线的终止位置,…

信息转换原理: 信息、知识、智能的一体化理论

来源:人机与认知实验室【数据、信息、知识、智能除了转换外,是否还有变异、弥聚等?能否把这些变化看成是态、势、感、知结构扭曲而产生的必然现象?】摘要 如何把信息转换为解决问题所需要的智能,是信息科学领域的核心研究课题. 本…

MATLAB(一)Matlab“帮助”的使用

前言MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真…

javascript 学习笔记(一)

说明:从今天开始从基础抓起学习javascript-完全依据w3school(http://www.w3school.com.cn/js/js_intro.asp)网站顺序。这里我将我认为不好理解的地方积累下来,希望对像我一样的新手有益。 第一篇 JavaScript:写入 HTML 输出 1. javascript有…

[附下载]英特尔中国研究院携手生态伙伴发布《机器人4.0白皮书》

来源:硬蛋迈向云-边-端融合的机器人4.0时代在2019国际人工智能与机器人创新生态峰会上,英特尔中国研究院院长宋继强博士发表了题为《迈向云-边-端融合的机器人4.0时代》的主题演讲。宋院长分析了机器人行业的现状与发展趋势,提出了基于AI、5G…

MATLAB(二)数据的输入

数据的输入 (一)简单矩阵的输入 1.要直接输入矩阵时,矩阵一行中的元素用空格或逗号分隔;矩阵行与行之间用分号“;”隔离,整个矩阵放在“[ ]”里。 >> a [1, 2, 3, 4;5, 6, 7, 8] a 1 2 3 …

无人驾驶产业的国际比较和PEST分析

来源:智造智库【导读】国家新一代人工智能发展规划中明确提出,发展自动驾驶汽车和轨道交通系统,加强车载感知、自动驾驶、车联网、物联网等技术集成和配套,开发交通智能感知系统,形成我国自主的自动驾驶平台技术体系和…

人类正在进入超级智能时代,论一种新超级智能的崛起

本文发表在2019年7月30号《社会科学报》,是刘锋根据2019年7月出版的著作《崛起的超级智能:互联网大脑》核心内容撰写的一篇文章,也感谢刘慈欣,张亚勤,周鸿祎,王飞跃,约翰.翰兹等专家和好友推荐。…

有道翻译接口问题

博文更新: 更新地址:https://blog.csdn.net/qq_40962368/article/details/89053068 原博文: 在调用有道翻译api接口时,出现了如下错误: 您要翻译的内容是:english Traceback (most recent call last):F…

GE前董事长伊梅尔特谈数字化转型:制造企业这件事做不好,一定没出路

来源:《商业评论》2019年7月号;两位作者:GE前董事长兼CEO杰弗里伊梅尔特;GE第一位常驻教授维贾伊戈文达拉扬无论过去还是现在,企业要实现任何转型都不容易。制造企业想实施数字化转型?这比实施其他任何一种…

MATALB(三)绘图命令

绘图命令 (一)二维绘图命令 二维绘图的基本命令有plot,loglog,semilogx,semilogy和polar。它们的使用方法基本相同,其不同点是在不同的坐标中绘制图形。plot命令使用线性坐标空间绘制图形;loglo…

微软打压竞争对手:针对AWS、谷歌、阿里云等提高软件许可成本

来源:云头条使用在公共云上托管的专用服务器上运行的微软软件?那就准备好多付钱。微软改变了许可条款,将使微软软件对AWS、谷歌云和阿里云的一些客户来说变得更昂贵。微软现在声称:专用托管云服务的出现使传统外包和云服务之间的界…

python+OpenCV图像处理(四)图像的简单几何变换

图像的简单几何变换 先看一下关于图像几何变换的简介: 几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。 适当的几何变换可以最大程度地消除由于成像角度、透视关系乃至镜头自身原因所造成的几何失真所产生的负面影响。有利于我们在后续…

谷歌AI自动重建果蝇大脑,离绘制人脑更进一步

来源:googleblog、biorxiv、venturebeat导语:将果蝇的大脑分割成成千上万个40纳米的超薄切片?不怕,谷歌新AI技术能够重建果蝇完整大脑。智东西8月6日消息,据外媒报道,谷歌刚刚公布了一项最新研究结果“用洪…

python+OpenCV图像处理(五)图像的阈值分割

图像的阈值处理一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法&#xf…

为什么有些softmax公式需要减去输入中的最大值

我们都知道softmax公式如下: 但有些softmax公式是先将每个x_i减去x中的最大值再代入以上公式 原因是为了防止上溢和下溢 举个例子,x[100000,100001,100002],如果直接代入上式数值会非常大,当对每个x的值减去x中的最大值后得到[-2,-1,0]&…

兰德公司报告分析 “分布式作战”对美空军兵力运用的影响

来源:兰德公司网站/图片来自互联网导读7月17日,兰德公司发布《竞争环境下的分布式作战:对美国空军兵力运用的影响》的报告,研究了美空军竞争环境下“分布式作战”的能力需求,分析了如何调整美空军当前的“兵力运用模式…