700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Opencv学习(一)之imread() imshow() imwrite()

Opencv学习(一)之imread() imshow() imwrite()

时间:2024-04-08 02:15:43

相关推荐

Opencv学习(一)之imread() imshow() imwrite()

Opencv学习(一)之imread()、imshow()、imwrite()

一、cv2.imread()读取图片

cv2.imread()方法用于从所提供的路径读取图片信息,图片信息为矩阵形式

用法:cv2.imread(filename,flags)参数:

filename :为图片路径,为一个字符串类型flags:标志位,即告诉程序如何读取这张图片,取值可为:{cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED}1、cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可用1作为实参替代2、cv2.IMREAD_GRAYSCALE:读入灰度图片,可用0作为实参替代3、cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道,可用-1作为实参替代

示例代码:

import cv2# 路径path = "cat.jpg"# 三种读取图片的方式read_photo_1 = cv2.imread(path,flags = cv2.IMREAD_COLOR)read_photo_2 = cv2.imread(path,flags = cv2.IMREAD_GRAYSCALE)read_photo_3 = cv2.imread(path,flags = cv2.IMREAD_UNCHANGED)# 输出图片的大小print(read_photo_1.shape)print(read_photo_2.shape)print(read_photo_3.shape)

输出:

(862, 1222, 3)(862, 1222)(862, 1222, 3)

注:这里我们可能看不出来这些图片的区别,在下一节的imshow中我们可以用可视化来展示这些区别。

二、cv2.imshow()展示图片

cv2.imshow()方法的作用就是将读取到的图片进行窗口显示

用法:cv2.imshow(wname,img)参数:

wname:窗口名字,为一个字符型img:由cv2.imread()函数读取到的变量名

示例代码:

import cv2# 图片路径path = "cat.jpg"#三种读取图片方法read_photo_1 = cv2.imread(path,flags = cv2.IMREAD_COLOR)read_photo_2 = cv2.imread(path,flags = cv2.IMREAD_GRAYSCALE)read_photo_3 = cv2.imread(path,flags = cv2.IMREAD_UNCHANGED)# 展示三种图片方法show_photo_1 = cv2.imshow('read_photo_1',read_photo_1)show_photo_2 = cv2.imshow('read_photo_2',read_photo_2)show_photo_3 = cv2.imshow('read_photo_3',read_photo_3)cv2.waitKey(0)cv2.destroyAllWindows()

输出图片中展示:

show_photo_1

show_photo_2

show_photo_3

这样就可以看到这三种读取图片方式的区别啦

三、cv2.resize()修改尺寸

cv2.resize()函数用于给图片修改尺寸

用法:cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)参数:

scr:原图dsize:输出图像尺寸fx:沿水平轴的比例因子fy:沿垂直轴的比例因子interpolation:插值方法

示例代码:

1、采取比例因子方法resize图片

import cv2# 图片路径path = "cat.jpg"# 读取图片read_photo_1 = cv2.imread(path,flags = cv2.IMREAD_COLOR)# 采取比例因子方法resize图片resize_photo_1 = cv2.resize(read_photo_1,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)# 输出resize后图片的尺寸print(resize_photo_1.shape)# 展示resize图片show_photo_1 = cv2.imshow('resize_photo_1',resize_photo_1)cv2.waitKey(0)

输出结果:

(1724, 2444, 3)

最后resize的图片尺寸大刀我屏幕都放不下,麻了呀。

2、采用设置固定尺寸方法来resize图片

import cv2# 图片路口path = "cat.jpg"# 读取图片read_photo_1 = cv2.imread(path,flags = cv2.IMREAD_COLOR)print("原图片尺寸为:")print(read_photo_1.shape)# 获取图片的长、宽height,width = read_photo_1.shape[:2]print("原图片宽为:{},长为{}".format(height,width))# resize图片resize_photo_1 = cv2.resize(read_photo_1,(height*2,width*2),interpolation=cv2.INTER_CUBIC)print("resize后图片尺寸为:")print(resize_photo_1.shape)show_photo_1 = cv2.imshow('resize_photo_1',resize_photo_1)cv2.waitKey(0)

输出结果:

原图片尺寸为:(862, 1222, 3)原图片宽为:862,长为1222resize后图片尺寸为:(2444, 1724, 3)

此方法采用读取图片的长宽,然后对长宽各增加一倍,显示的图片很大,所有我再次输出的图片截图不全!!!

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