失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python+OpenCV图像处理(一)读取 复制 显示 保存

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

时间:2020-12-16 05:38:21

相关推荐

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

前 言

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

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

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

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

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

# 导入包import cv2import 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图像处理(一)读取 复制 显示 保存》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。