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

image-20220502155202150

show_photo_2

image-20220502155239998

show_photo_3

image-20220502155254337

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

三、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)

image-20220502160113796

最后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,长为1222
resize后图片尺寸为:
(2444, 1724, 3)

image-20220502161221672

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

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嗌三嗮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值