【Python】CV2的一些基本操作

本文介绍了Python中使用OpenCV进行图像处理的基本操作,包括读取图片、获取图片大小、缩放图片、显示图片、颜色空间转换以及保存图片的方法。示例代码详细解释了每个操作的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

·导入:

import cv2

·读取图片:

img = cv2.imread('路径')

使用函数cv2.imread(filepath,flags)读入一副图片

filepath:要读入图片的完整路径

flags:读入图片的标志

cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道

cv2.IMREAD_GRAYSCALE:读入灰度图片

cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道

import numpy as npimport cv2img = cv2.imread(‘1.jpg’,cv2.IMREAD_GRAYSCALE)

·获取图片大小:

x, y, z = img.shape

·缩放图片:

cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation)

具体参数:

InputArray src输入图片
OutputArray dst输出图片
Size输出图片尺寸
fx, fy沿x轴,y轴的缩放系数
interpolation插入方式
INTER_NEAREST最近邻插值
INTER_LINEAR双线性插值(默认设置)
INTER_AREA使用像素区域关系进行重采样。
INTER_CUBIC4x4像素邻域的双三次插值
INTER_LANCZOS48x8像素邻域的Lanczos插值

举个例子:

img_test = cv2.resize(img, (0, 0), fx=0.25, fy=0.25, interpolation=cv2.INTER_NEAREST)
img_test = cv2.resize(img_test, (0, 0), fx=4, fy=4, interpolation=cv2.INTER_NEAREST)

·展示图片:

cv2.imshow('窗口名', img)
cv2.waitKey()
cv2.destroyAllWindows()

·灰度图彩图转换:

RGB转灰度:

img2 = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

灰度转RBG:

img3 = cv2.cv2Color(img, cv2.COLOR_GRAY2RGB)

·解决关闭窗口后程序不停止的问题:还没找到

·保存图片:

cv2.imwrite(filepath, img, flag)

filepath: 保存路径

img: 图像

flag:参数

可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别。默认为3.

注意:cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int

cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小。

·路径拼接:

os.path.join()

os.path.join()函数:连接两个或更多的路径名组件

1.如果各组件名首字母不包含’/’,则函数会自动加上

2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃

3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾

·补0

'''
原字符串左侧对齐, 右侧补零:
'''
str.ljust(width,'0') 
input: '789'.ljust(32,'0')
output: '78900000000000000000000000000000'


'''
原字符串右侧对齐, 左侧补零:
方法一:
'''
str.rjust(width,'0') 
input: '798'.rjust(32,'0')
output: '00000000000000000000000000000798'
'''
方法二:
'''
str.zfill(width)
input: '123'.zfill(32)
output:'00000000000000000000000000000123'
'''
方法三:
'''
'%07d' % n
input: '%032d' % 89
output:'00000000000000000000000000000089'

·循环:

for i in range x

for i in range(3) :0 1 2

for i in range(1, 3) :1 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值